给定一个无序的数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序。

示例 1:

输入: nums = [1, 5, 1, 1, 6, 4]输出: 一个可能的答案是 [1, 4, 1, 5, 1, 6]

示例 2:

输入: nums = [1, 3, 2, 2, 3, 1]输出: 一个可能的答案是 [2, 3, 1, 3, 1, 2]

说明:
你可以假设所有输入都会得到有效的结果。

进阶:
你能用 O(n) 时间复杂度和 / 或原地 O(1) 额外空间来实现吗?

class Solution {
public:
    void wiggleSort(vector<int>& nums) {
        vector<int> tmp = nums;
        int n = nums.size(), k = (n + 1) / 2, j = n; 
        sort(tmp.begin(), tmp.end());
        for (int i = 0; i < n; ++i) {
            nums[i] = i & 1 ? tmp[--j] : tmp[--k];
        }
    }
};

324.摆动排序II相关推荐

  1. 【leetcode】324.摆动排序 II (四种解法,快速排序+3way-partition等,java实现)

    324. 摆动排序 II 难度中等 给定一个无序的数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序. 示例 1 ...

  2. 324. Wiggle Sort II | 324. 摆动排序 II(降序穿插)

    题目 https://leetcode.com/problems/wiggle-sort-ii/submissions/ 题解 没有一次想到正确的方法,是在 WA 的测试用例的提示下,一点一点修正,才 ...

  3. [Swift]LeetCode324. 摆动排序 II | Wiggle Sort II

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  4. LeetCode 280. 摆动排序

    文章目录 1. 题目 2. 解题 1. 题目 给你一个无序的数组 nums, 将该数字 原地 重排后使得 nums[0] <= nums[1] >= nums[2] <= nums[ ...

  5. C++Wiggle Sort摆动排序的实现算法(附完整源码)

    C++Wiggle Sort摆动排序的实现算法 C++Wiggle Sort摆动排序的实现算法完整源码(定义,实现,main函数测试) C++Wiggle Sort摆动排序的实现算法完整源码(定义,实 ...

  6. 324. Wiggle Sort II

    /** 324. Wiggle Sort II* 2016-7-7 by Mingyang* 我想利用I的思路,设立一个list,sort以后从头尾分别加,但是遇到1122233就不行了* 因为这里是 ...

  7. 摆动排序leetcode324

    给你一个整数数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序. 你可以假设所有输入数组都可以得到满足题目要求的 ...

  8. ACM练习 链表排序 II 【WA】

    注意:在OJ上提交时不要使用endl,可能会出问题.用\n代替. 描述 已知 小 g 手里有一个链表. 小 g 希望手里的链表是按照单调非减的顺序排好的. 小 g 希望链表中值相同的节点在排完序后相对 ...

  9. HLG 数字去重和排序II【二叉排序树】

    Description 用计算机随机生成了N个0到1000000000(包含0和1000000000)之间的随机整数(N≤5000000),对于其中重复的数字,只保留一个,把其余相同的数去掉.然后再把 ...

  10. LeetCode 376. 摆动序列(贪心 动态规划)

    文章目录 1. 题目 2. 解题 2.1 贪心 2.2 动态规划 1. 题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个 ...

最新文章

  1. 刘启成_编写并使用shell脚本
  2. QT开发(六十四)——QT样式表(二)
  3. esp8266手机端网络调试助手_esp8266定时控制
  4. 澳大利亚计算机领域的科学家,澳科学家首创硅基元件 突破量子计算机制造瓶颈...
  5. USB3.1与Type-C有什么区别
  6. [转] 撞车之后,不要傻里傻气的!
  7. [转载] python的短逻辑
  8. 电脑C盘的大小影响电脑正常使用吗?
  9. springmvc框架原理学习
  10. OCS2007视频会议客户端的部署与应用
  11. html5时间点阵代码,HTML5 Canvas 波动的点阵
  12. Pandownload 百度网盘光速下载 十分简单 一秒破解
  13. 使用python PIL 模块合成图片
  14. Python Playwright 打包报错 Please run the following command to download new browsers
  15. 吴恩达预热新课!万字回顾机器学习!
  16. 主板点不亮 复位BIOS_【硬件篇】主板排线怎么插?确认过眼神,就是这么简单!...
  17. 雷锋网的那些段段(一)。
  18. nvme分区选mbr还是guid_怎么分辨硬盘是GUID格式还是MBR格式以及怎样更改
  19. Zabbix 3.4配置监控项及监控Linux、Windows客户端
  20. Windows 11 家庭版、专业版、企业版、教育版、SE 版之间的区别

热门文章

  1. JavaScript中字符串相关总结(附实例)
  2. Div高度自适应内容高度
  3. 史上最完整的MySQL注入
  4. 聊聊rocketmq的SequenceProducerImpl
  5. 华为助力“沙漠奇迹”成为高密互联的高尔夫球场
  6. 硅谷初创企业控制成本 裁员风渐起
  7. 基于Berkeley DB实现的持久化队列
  8. IOS键盘样式风格有关设置
  9. 将GridView数据导出到Excel实现
  10. 楼道声光控灯闪烁_照明灯闪烁其中一个原因就是它