Skip to content

Commit 1f0efbf

Browse files
committed
fd
1 parent de73f2a commit 1f0efbf

File tree

2 files changed

+15
-18
lines changed

2 files changed

+15
-18
lines changed

solution/src/main/java/com/inuker/solution/WiggleSort.java

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,11 @@
1111
*/
1212
public class WiggleSort {
1313

14-
public void wiggleSort(int[] nums) {
15-
Arrays.sort(nums);
16-
for (int i = 1; i + 1 < nums.length; i += 2) {
17-
swap(nums, i, i + 1);
18-
}
19-
}
20-
2114
// 复杂度O(n)
22-
public void wiggleSort2(int[] nums) {
23-
for (int i = 0; i + 1 < nums.length; i++) {
24-
if ((i & 1) == 0) {
25-
if (nums[i] > nums[i + 1]) {
26-
swap(nums, i, i + 1);
27-
}
28-
} else {
29-
if (nums[i] < nums[i + 1]) {
30-
swap(nums, i, i + 1);
31-
}
15+
public void wiggleSort(int[] nums) {
16+
for (int i = 0; i < nums.length - 1; i++) {
17+
if ((i % 2 == 0 && nums[i] > nums[i + 1]) || (i % 2 != 0 && nums[i] < nums[i + 1])) {
18+
swap(nums, i, i + 1);
3219
}
3320
}
3421
}

test/src/main/java/com/inuker/test/main.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,17 @@ public static void main(String[] args) {
2525

2626
}
2727

28-
public String nextClosestTime(String time) {
28+
public void wiggleSort(int[] nums) {
29+
for (int i = 0; i < nums.length - 1; i++) {
30+
if ((i % 2 == 0 && nums[i] > nums[i + 1]) || (i % 2 != 0 && nums[i] < nums[i + 1])) {
31+
swap(nums, i, i + 1);
32+
}
33+
}
34+
}
2935

36+
private void swap(int[] nums, int i, int j) {
37+
int t = nums[i];
38+
nums[i] = nums[j];
39+
nums[j] = t;
3040
}
3141
}

0 commit comments

Comments
 (0)