324. 摆动排序 II(待完成)
给你一个整数数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序。
你可以假设所有输入数组都可以得到满足题目要求的结果。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/wiggle-sort-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
计数排序
class Solution {
public void wiggleSort(int[] nums) {
int[] cnt = new int[5001];
for (int num : nums) {
cnt[num]++;
}
int idx = nums.length % 2 == 0 ? nums.length - 2 : nums.length - 1;
for (int i = 0; i <= 5000; ++i) {
while (cnt[i]-- > 0) {
nums[idx] = i;
idx -= 2;
if (idx < 0) {
idx = nums.length % 2 == 0 ? nums.length - 1 : nums.length - 2;
}
}
}
}
}
心之所向,素履以往 生如逆旅,一苇以航

浙公网安备 33010602011771号