[LintCode] Wiggle Sort 扭动排序

简介:

Given an unsorted array nums, reorder it in-place such that

nums[0] <= nums[1] >= nums[2] <= nums[3]....
Notice

Please complete the problem in-place.

Example
Given nums = [3, 5, 2, 1, 6, 4], one possible answer is [1, 6, 2, 5, 3, 4].

LeetCode上的原题,请参见我之前的博客Wiggle Sort

解法一:

class Solution {
public:
    /**
     * @param nums a list of integer
     * @return void
     */  
    void wiggleSort(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        for (int i = 1; i < nums.size(); ++i) {
            if (i % 2 == 0) {
                swap(nums[i], nums[i - 1]);
            }
        }
    }
};

解法二:

class Solution {
public:
    /**
     * @param nums a list of integer
     * @return void
     */  
    void wiggleSort(vector<int>& nums) {
        for (int i = 1; i < nums.size(); ++i) {
            if ((i % 2 == 1 && nums[i] < nums[i - 1]) || (i % 2 == 0 && nums[i] > nums[i - 1])) {
                swap(nums[i], nums[i - 1]);
            } 
        }
    }
};

本文转自博客园Grandyang的博客,原文链接:扭动排序[LintCode] Wiggle Sort ,如需转载请自行联系原博主。

相关文章
|
JavaScript 数据格式
VUE element-ui下拉菜单el-select获取label值或value的值
VUE element-ui下拉菜单el-select获取label值或value的值
2905 0
VUE element-ui下拉菜单el-select获取label值或value的值
|
存储 数据可视化 项目管理
有哪些“极简风”页面设计的办公协同工具?再不怕眼花缭乱啦!
在快节奏的现代职场中,极简风页面设计的协同工具成为提升工作效率的重要手段。本文介绍了10款极简风设计的办公协同工具,包括板栗看板、Notion、Trello、Slack、Asana、Figma、Invision、Moqups、Coda和Dropbox Paper。这些工具不仅界面简洁直观,功能强大,还能帮助团队高效协作,让工作更加井然有序。
289 43
有哪些“极简风”页面设计的办公协同工具?再不怕眼花缭乱啦!
|
Linux 虚拟化 数据安全/隐私保护
银河麒麟V10 VMWare安装保姆级教程
银河麒麟V10 VMWare安装保姆级教程
16317 5
银河麒麟V10 VMWare安装保姆级教程
|
存储 容器
Aliyun日志sls接入总结
阿里云接入经验总结
1049 0
|
机器学习/深度学习 算法 前端开发
【Python机器学习专栏】机器学习中的模型融合技术
【4月更文挑战第30天】模型融合,即集成学习,通过结合多个模型提升预测性能。常见方法包括:Bagging(如Random Forest)、Boosting(如AdaBoost、XGBoost)和Stacking。Python中可使用`scikit-learn`实现,例如BaggingClassifier示例。模型融合是机器学习中的强大工具,能提高整体性能并适应复杂问题。
517 0
|
负载均衡 Dubbo 算法
带你读《Apache Dubbo微服务开发从入门到精通》——六、 负载均衡
带你读《Apache Dubbo微服务开发从入门到精通》——六、 负载均衡
293 82
|
编译器 程序员 C++
【C++高阶】掌握C++多态:探索代码的动态之美
【C++高阶】掌握C++多态:探索代码的动态之美
139 0
|
存储 安全 编译器
【为什么】选用int64_t而不是longlong
【为什么】选用int64_t而不是longlong
709 0
|
弹性计算 监控 Ubuntu
Ubuntu的SSH安全配置,查看SSH登录日志文件,修改默认端口,UFW配置防火墙,禁止root用户登录,禁用密码登陆,使用RSA私钥登录,使用 Fail2ban 工具,使用两步验证(2FA)
Ubuntu的SSH安全配置,查看SSH登录日志文件,修改默认端口,UFW配置防火墙,禁止root用户登录,禁用密码登陆,使用RSA私钥登录,使用 Fail2ban 工具,使用两步验证(2FA)
3221 1
|
数据采集 前端开发 算法
外贸网站怎么做站内优化?
答案是:外贸官网的站内优化包括:代码优化,内链优化,结构优化三大类。 内容是王道 一份优质的内容是Google优化的基础。 投入时间和精力来创造独特、有价值的内容,以吸引和保留读者。 记住,内容必须是原创的,并且应该针对您的目标受众。 不断更新新的、有价值的内容也能够帮助提高网站的Google排名。
235 0
外贸网站怎么做站内优化?