LeetCode Problem
280. Wiggle Sort๐
Link to LeetCode ๐[locked - premium question]
Given an unsorted array nums, reorder it in-place such that nums[0] < nums[1] > nums[2] < nums[3]....
Input: nums = [3,5,2,1,6,4]
Output: One possible answer is [3,5,1,6,2,4]
public void wiggleSort(int[] nums) {
if (nums == null || nums.length <= 1) {
return;
}
for (int i = 1; i < nums.length; i++) {
if (i % 2 == 1) {
if (nums[i - 1] > nums[i]) {
swap(nums, i - 1, i);
}
} else {
if (nums[i - 1] < nums[i]) {
swap(nums, i - 1, i);
}
}
}
}
private void swap(int[] nums, int i, int j) {
int t = nums[i];
nums[i] = nums[j];
nums[j] = t;
}