324. Wiggle Sort II
2018-03-19 22:11
218 查看
Given an unsorted array
(1) Given
(2) Given
You may assume all input has valid answer.Follow Up:
Can you do it in O(n) time and/or in-place with O(1) extra space?
O(n)复杂度要求比较高,这里给出O(nlogn),程序如下所示:class Solution {
public void wiggleSort(int[] nums) {
int[] array = Arrays.copyOf(nums, nums.length);
Arrays.sort(array);
int left = 0, right = array.length - 1;
while (left < right){
int tmp = array[left];
array[left] = array[right];
array[right] = tmp;
left ++;
right --;
}
for (int i = 0; i < nums.length; ++ i){
int index = (1+2*i)%(nums.length|1);
nums[index] = array[i];
}
}
}
nums, reorder it such that
nums[0] < nums[1] > nums[2] < nums[3]....Example:
(1) Given
nums = [1, 5, 1, 1, 6, 4], one possible answer is
[1, 4, 1, 5, 1, 6].
(2) Given
nums = [1, 3, 2, 2, 3, 1], one possible answer is
[2, 3, 1, 3, 1, 2].Note:
You may assume all input has valid answer.Follow Up:
Can you do it in O(n) time and/or in-place with O(1) extra space?
O(n)复杂度要求比较高,这里给出O(nlogn),程序如下所示:class Solution {
public void wiggleSort(int[] nums) {
int[] array = Arrays.copyOf(nums, nums.length);
Arrays.sort(array);
int left = 0, right = array.length - 1;
while (left < right){
int tmp = array[left];
array[left] = array[right];
array[right] = tmp;
left ++;
right --;
}
for (int i = 0; i < nums.length; ++ i){
int index = (1+2*i)%(nums.length|1);
nums[index] = array[i];
}
}
}
相关文章推荐
- [leetcode] 324. Wiggle Sort II 解题报告
- LeetCode 324. Wiggle Sort II
- leetcode 324. Wiggle Sort II
- LeetCode--324. Wiggle Sort II
- LeetCode 324. Wiggle Sort II
- 324. Wiggle Sort II
- [LeetCode] 324. Wiggle Sort II 摆动排序 II
- 324. Wiggle Sort II【M】【33】
- [leetcode] - 324. Wiggle Sort II
- LeetCode 324. Wiggle Sort II(摇摆排序)
- 324. Wiggle Sort II
- 324. Wiggle Sort II**
- LeetCode 324. Wiggle Sort II(摇摆排序)
- LeetCode *** 324. Wiggle Sort II (virtual indexing)
- 324. Wiggle Sort II
- leetcode 324. Wiggle Sort II【如何锯齿状排序】
- 324. Wiggle Sort II(unsolved)
- 324. Wiggle Sort II
- leetcode 324. Wiggle Sort II 摇摆排序
- leetcode 324. Wiggle Sort II