Leetcode 280: Wiggle Sort
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].
1 public class Solution { 2 public void WiggleSort(int[] nums) { 3 for (int i = 0; i < nums.Length; i++) 4 { 5 if (i % 2 == 1) 6 { 7 if (nums[i - 1] > nums[i]) 8 { 9 Swap(nums, i - 1, i); 10 } 11 } 12 else if (i != 0) 13 { 14 if (nums[i] > nums[i - 1]) 15 { 16 Swap(nums, i - 1, i); 17 } 18 } 19 } 20 } 21 22 private void Swap(int[] nums, int i, int j) 23 { 24 int tmp = nums[i]; 25 nums[i] = nums[j]; 26 nums[j] = tmp; 27 } 28 }

浙公网安备 33010602011771号