LeetCode 324 Wiggle Sort II
概述
https://leetcode.com/problems/wiggle-sort-ii/
小大小大的排序。
排序法
首先进行排序,之后,把前半段和后半段交替取出元素进行拼接。
注意处理奇数的情况,此时我们手动将其 swap 到最后一个位置。
为了避免靠近中值的值凑到一起,我们还需要倒序访问前半段和后半段。
芜湖,AC:
class Solution {
public:
void wiggleSort(vector<int>& nums) {
sort(nums.begin(), nums.end());
int half = nums.size() / 2;
if (nums.size() % 2) {
swap(nums[half], nums[nums.size()-1]);
}
auto arr = nums;
for (int i = 0; i < half; i ++) {
nums[2*i] = arr[half-1-i];
nums[2*i+1] = arr[half-1-i+half];
}
}
};
Links: leetcode-324-wiggle-sort-ii