Skip to content

Commit a78bdac

Browse files
refactor 324
1 parent 68901dc commit a78bdac

File tree

1 file changed

+33
-33
lines changed
  • src/main/java/com/fishercoder/solutions

1 file changed

+33
-33
lines changed

src/main/java/com/fishercoder/solutions/_324.java

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -20,47 +20,47 @@ Can you do it in O(n) time and/or in-place with O(1) extra space?
2020
*/
2121
public class _324 {
2222

23-
/**Credit: https://discuss.leetcode.com/topic/41464/step-by-step-explanation-of-index-mapping-in-java
24-
* TODO: completely understand it.*/
25-
public void wiggleSort(int[] nums) {
26-
int median = findKthLargest(nums, (nums.length + 1) / 2);
27-
int n = nums.length;
23+
public static class Solution1 {
24+
/** Credit: https://discuss.leetcode.com/topic/41464/step-by-step-explanation-of-index-mapping-in-java */
25+
public void wiggleSort(int[] nums) {
26+
int median = findKthLargest(nums, (nums.length + 1) / 2);
27+
int n = nums.length;
2828

29-
int left = 0;
30-
int i = 0;
31-
int right = n - 1;
29+
int left = 0;
30+
int i = 0;
31+
int right = n - 1;
3232

33-
while (i <= right) {
33+
while (i <= right) {
3434

35-
if (nums[newIndex(i, n)] > median) {
36-
swap(nums, newIndex(left++, n), newIndex(i++, n));
37-
} else if (nums[newIndex(i, n)] < median) {
38-
swap(nums, newIndex(right--, n), newIndex(i, n));
39-
} else {
40-
i++;
35+
if (nums[newIndex(i, n)] > median) {
36+
swap(nums, newIndex(left++, n), newIndex(i++, n));
37+
} else if (nums[newIndex(i, n)] < median) {
38+
swap(nums, newIndex(right--, n), newIndex(i, n));
39+
} else {
40+
i++;
41+
}
4142
}
4243
}
43-
}
4444

45-
private int findKthLargest(int[] nums, int k) {
46-
PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Collections.reverseOrder());
47-
for (int i : nums) {
48-
maxHeap.offer(i);
49-
}
50-
while (k-- > 1) {
51-
maxHeap.poll();
45+
private int findKthLargest(int[] nums, int k) {
46+
PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Collections.reverseOrder());
47+
for (int i : nums) {
48+
maxHeap.offer(i);
49+
}
50+
while (k-- > 1) {
51+
maxHeap.poll();
52+
}
53+
return maxHeap.poll();
5254
}
53-
return maxHeap.poll();
54-
}
5555

56-
private void swap(int[] nums, int i, int j) {
57-
int tmp = nums[i];
58-
nums[i] = nums[j];
59-
nums[j] = tmp;
60-
}
56+
private void swap(int[] nums, int i, int j) {
57+
int tmp = nums[i];
58+
nums[i] = nums[j];
59+
nums[j] = tmp;
60+
}
6161

62-
private int newIndex(int index, int n) {
63-
return (1 + 2 * index) % (n | 1);
62+
private int newIndex(int index, int n) {
63+
return (1 + 2 * index) % (n | 1);
64+
}
6465
}
65-
6666
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy