File tree Expand file tree Collapse file tree 2 files changed +15
-18
lines changed
solution/src/main/java/com/inuker/solution
test/src/main/java/com/inuker/test Expand file tree Collapse file tree 2 files changed +15
-18
lines changed Original file line number Diff line number Diff line change 11
11
*/
12
12
public class WiggleSort {
13
13
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
-
21
14
// 复杂度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 );
32
19
}
33
20
}
34
21
}
Original file line number Diff line number Diff line change @@ -25,7 +25,17 @@ public static void main(String[] args) {
25
25
26
26
}
27
27
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
+ }
29
35
36
+ private void swap (int [] nums , int i , int j ) {
37
+ int t = nums [i ];
38
+ nums [i ] = nums [j ];
39
+ nums [j ] = t ;
30
40
}
31
41
}
You can’t perform that action at this time.
0 commit comments