标签:bsp ted should amp ssi void style ++ for
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]
.
Solution:
Loop through, when odd index num should be greater then the previous num;
when even index num should be smaller then the previous num;
So if even index num is greater then the previous num then it must be greater then the previous of previous num too, so only swap once.
1 public class Solution { 2 public void WiggleSort(int[] nums) { 3 int l = nums.Length; 4 for(int i=1; i<l;i++) 5 { 6 if(i%2==1) 7 { 8 if(nums[i]<nums[i-1]) 9 { 10 Swap(nums, i); 11 } 12 } 13 else 14 { 15 if(nums[i]>nums[i-1]) 16 { 17 Swap(nums, i); 18 } 19 } 20 } 21 } 22 public void Swap(int[] nums, int i) 23 { 24 int temp = nums[i-1]; 25 nums[i-1]=nums[i]; 26 nums[i] = temp; 27 } 28 }
标签:bsp ted should amp ssi void style ++ for
原文地址:http://www.cnblogs.com/MiaBlog/p/6281020.html