280. Wiggle Sort
来源:互联网 发布:计算机通信网络实训 编辑:程序博客网 时间:2024/06/03 05:19
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]
.
public class Solution { public void wiggleSort(int[] nums) { Arrays.sort(nums); if (nums.length < 3) { return; } for (int i = 1; i < nums.length - 1; i = i + 2) { int temp = nums[i]; nums[i] = nums[i + 1]; nums[i + 1] = temp; } }}或者从前到后,如果当前是奇数位,那么他应该比之前的数小,违反规则的话就交换他跟他之前的数;如果是偶数位,他应该比之前的数大,违反规则就交换他跟他之前的数。代码如下:
public class Solution { public void wiggleSort(int[] nums) { for(int i=0;i<nums.length;i++) if(i%2==1){ if(nums[i-1]>nums[i]) swap(nums, i); }else if(i!=0 && nums[i-1]<nums[i]) swap(nums, i); } public void swap(int[] nums, int i){ int tmp=nums[i]; nums[i]=nums[i-1]; nums[i-1]=tmp; }}逻辑再进行简化就是下面的代码:
public void wiggleSort(int[] nums) { for (int i=1; i<nums.length; i++) { int a = nums[i-1]; if ((i%2 == 1) == (a > nums[i])) { nums[i-1] = nums[i]; nums[i] = a; } }}
0 0
- LeetCode 280. Wiggle Sort
- LeetCode 280. Wiggle Sort
- 280. Wiggle Sort
- Wiggle Sort
- Wiggle Sort
- Wiggle Sort
- Wiggle Sort
- Wiggle Sort
- Wiggle Sort
- [leetcode] 280. Wiggle Sort 解题报告
- LeetCode 280. Wiggle Sort(摇摆排序)
- Leetcode 280. Wiggle Sort (Medium) (cpp)
- [Leetcode] 280. Wiggle Sort 解题报告
- Wiggle Sort && Wiggle SortII---lintcode
- Leetcode Wiggle Sort and Wiggle Sort II
- Leetcode: Wiggle Sort
- [Leetcode]Wiggle Sort
- leetcode 280: Wiggle Sort
- C++Notes06_继承(Inheritance)
- 1110. Complete Binary Tree (25) PAT 甲级
- 静态优先权和动态优先权
- Eclipse 常用快捷键和使用技巧
- 最高位数字
- 280. Wiggle Sort
- 65-进程组(实验一)
- Android 6.0运行时权限 baseactivity简单封装
- 阿里面试回来,想和Java程序员谈一谈
- 关于call ,this,继承,记录一点自己的初步理解
- 信号的稀疏表示
- Vmware虚拟机安装win7系统教程
- [LeetCode]400. Nth Digit
- UNIX系统 文件操作接口