Given an unsorted arraynums
, reorder itin-placesuch thatnums[0] <= nums[1] >= nums[2] <= nums[3]...
.
Example:
Input:
nums = [3,5,2,1,6,4]
Output:
One possible answer is [3,5,1,6,2,4]
class Solution {
public void wiggleSort(int[] nums) {
boolean flag = true;
for (int i = 0; i < nums.length - 1; i++){
if (flag){
if (nums[i] > nums[i + 1]){
swap(nums, i, i + 1);
}
}
else{
if (nums[i] < nums[i + 1]){
swap(nums, i, i + 1);
}
}
flag = !flag;
}
}
private void swap(int[] nums, int i, int j){
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}