324. Wiggle Sort II
public void wiggleSort(int[] nums) {
Arrays.sort(nums);
for(int i = 0; i < nums.length/2; ++i ) {
int temp = nums[i];
nums[i] = nums[nums.length - i - 1];
nums[nums.length - i - 1] = temp;
}
int half = nums.length / 2;
int[] large = Arrays.copyOfRange(nums, 0, half);
int[] small = Arrays.copyOfRange(nums, half, nums.length);
for (int i = 0, j = 0, k = 0; i < nums.length; i++) {
if (i % 2 == 0)
nums[i] = small[j++];
else
nums[i] = large[k++];
}
}
Runtime: 3 ms, faster than 83.19% of Java online submissions for Wiggle Sort II.
Memory Usage: 41.8 MB, less than 66.38% of Java online submissions for Wiggle Sort II.
def wiggleSort(self, nums):
nums.sort()
half = len(nums[::2])
nums[::2], nums[1::2] = nums[:half][::-1], nums[half:][::-1]
Runtime: 160 ms, faster than 89.50% of Python3 online submissions for Wiggle Sort II.
Memory Usage: 17.1 MB, less than 73.18% of Python3 online submissions for Wiggle Sort II.
중요한 아이디어는
미디언을 구한 후 ==> median보다 작은 것들을 뒤의 even index에 넣고, median보다 큰 것들은 앞의 odd index들에다가 넣는 방식.
Author And Source
이 문제에 관하여(324. Wiggle Sort II), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jwade/324.-Wiggle-Sort-II저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)