题目:

Given an unsorted array nums, reorder it in-place such that nums[0] <= nums[1] >= nums[2] <= nums[3]....

For example, given nums = [3, 5, 2, 1, 6, 4], one possible answer is [1, 6, 2, 5, 3, 4].

链接: http://leetcode.com/problems/wiggle-sort/

题解:

Wiggle排序数组。按照题意写就可以了。 还可以简化,要多学习Stefan的代码。

Time Complexity - O(n), Space Complexity - O(1)

public class Solution {public void wiggleSort(int[] nums) {for(int i = 1; i < nums.length; i++) {if(i % 2 == 1) {if(nums[i] < nums[i - 1]) {swap(nums, i);}} else {if(i != 0 && nums[i] > nums[i - 1]) {swap(nums, i);}}}}private void swap(int[] nums, int i) {int tmp = nums[i - 1];nums[i - 1] = nums[i];nums[i] = tmp;}
}

二刷:

方法和一刷一样。在i % 2 == 1或者 == 0的时候作交换的判断,交换完毕以后仍然保持这是一个本地化操作就可以了。交换的时候是用 i和 i - 1来交换

Java:

Time Complexity - O(n), Space Complexity - O(1)

public class Solution {public void wiggleSort(int[] nums) {if (nums == null || nums.length == 0) {return;}for (int i = 1; i < nums.length; i++) {if (i % 2 == 1) {if (nums[i] < nums[i - 1]) {swap(nums, i);} } else {if (nums[i] > nums[i - 1]) {swap(nums, i);}}}}private void swap(int[] nums, int i) {int tmp = nums[i - 1];nums[i - 1] = nums[i];nums[i] = tmp;}
}

三刷:

跟前面一样,也是直接编写。

Java:

public class Solution {public void wiggleSort(int[] nums) {if (nums == null || nums.length < 2) return;for (int i = 1; i < nums.length; i++) {if ((i % 2 == 0 && nums[i] > nums[i - 1]) || (i % 2 == 1 && nums[i] < nums[i - 1])) {int tmp = nums[i];nums[i] = nums[i - 1];nums[i - 1] = tmp;} }}
}

Reference:

https://leetcode.com/discuss/57113/java-o-n-solution

https://leetcode.com/discuss/57206/java-o-n-10-lines-consice-solution

https://leetcode.com/discuss/60824/java-python-o-n-time-o-1-space-solution-3-lines

https://leetcode.com/discuss/57118/easy-code-of-python

转载于:https://www.cnblogs.com/yrbbest/p/5035540.html

280. Wiggle Sort相关推荐

  1. 280. Wiggle Sort

    最后更新 二刷 这个题做得真蠢.上来想的复杂了,想的是quick sort之类的,然后一个一个交换. 实际上直接交换就行..没啥特别的. 回头看一刷也是同样的思考过程= =宿命论啊.. Time: O ...

  2. [Leetcode] Wiggle Sort 摇摆排序

    Wiggle Sort Given an unsorted array nums, reorder it in-place such that nums[0] <= nums[1] >= ...

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

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

  4. 【LeetCode 剑指offer刷题】查找与排序题14:Wiggle Sort(系列)

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Wiggle Sort II Given an unsorted array nums, reorder it su ...

  5. 324. Wiggle Sort II

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

  6. LeetCode Wiggle Sort II(快排)

    问题:给出一个无序数组,将它重新排列成nums[0]<nums[1]>nums[2]<nums[3]... 思路:将无序数组排序后,从中间及最后下标开始相间的填入值. 具体代码参考: ...

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

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

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

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

  9. LeetCode Wiggle Sort II

    1232131 转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/10936707.html

最新文章

  1. 项目经理常扮演的角色
  2. 阿里巴巴java开发手册学习
  3. java ac自动机_如何使用Java实现AC自动机全文检索实例
  4. 电子计算机专业vs土木工程专业,最难学十大工科专业 不想累成狗就别去(高薪)...
  5. JNPF开发平台3.3企业版框架 力软敏捷开发框架源码7.0.6旗舰版
  6. 初识内存控制器和SDRAM【一文了解】
  7. [Transformer]SPViT:Pruning Self-attentions into Convolutional Layers in Single Path
  8. 高考数学必考知识点数学高考常考考点
  9. Running “flutter pub get“ in xxx... 报错: Git error 443
  10. CSS backdrop-filter 滤镜 毛玻璃效果
  11. qq iphone for android,QQ for iPhone/Android v8.2.8 正式版发布
  12. Malcolm的新书:Outliers
  13. Android触控基础:MotionEvent
  14. 控制系统稳态误差(静态误差)分析
  15. 那些裸辞的人后来都怎么样了?
  16. sql触发器Tigger
  17. SQL Server数据库实操 第二波 集合查询、datepart()
  18. MATLAB时间序列2(ARIMA,季节性序列及其预报)------2019/8/14
  19. 城市公交线路查询系统mysql_基于Java环境下的城市公交查询系统设计与实现毕业论文+开题报告+答辩PPT+演示视频+设计源码+Mysql文件...
  20. 公众平台新增修改文章错别字功能 每篇文章允许被修改一次仅限正文内五个字...

热门文章

  1. ubuntu 安装Gogland
  2. SM4密码算法(附源码)
  3. APK安装错误和解决方法
  4. 一句话,讲清楚java泛型的本质(非类型擦除)
  5. [Flutter] Android沉侵式标题栏顶部叠加层去除
  6. Airbnb JavaScript 编码风格指南(2018年最新版)
  7. C++中引用()的用法和应用实例
  8. 与其雇人杀虫不如购买杀虫剂
  9. 单链表的操作_二分查找
  10. 【分块答案】【最小割】bzoj1532 [POI2005]Kos-Dicing