File tree 4 files changed +97
-11
lines changed
solution/0200-0299/0283.Move Zeroes
4 files changed +97
-11
lines changed Original file line number Diff line number Diff line change 30
30
<!-- 这里可写当前语言的特殊实现逻辑 -->
31
31
32
32
``` python
33
-
33
+ class Solution :
34
+ def moveZeroes (self , nums : List[int ]) -> None :
35
+ """
36
+ Do not return anything, modify nums in-place instead.
37
+ """
38
+ if not nums:
39
+ return
40
+ n = len (nums)
41
+ zero_count = 0
42
+ for i in range (n):
43
+ if nums[i] == 0 :
44
+ zero_count += 1
45
+ else :
46
+ nums[i - zero_count] = nums[i]
47
+ while zero_count > 0 :
48
+ nums[n - zero_count] = 0
49
+ zero_count -= 1
34
50
```
35
51
36
52
### ** Java**
37
53
38
54
<!-- 这里可写当前语言的特殊实现逻辑 -->
39
55
40
56
``` java
41
-
57
+ class Solution {
58
+ public void moveZeroes (int [] nums ) {
59
+ int n;
60
+ if (nums == null || (n = nums. length) < 1 ) {
61
+ return ;
62
+ }
63
+ int zeroCount = 0 ;
64
+ for (int i = 0 ; i < n; ++ i) {
65
+ if (nums[i] == 0 ) {
66
+ ++ zeroCount;
67
+ } else {
68
+ nums[i - zeroCount] = nums[i];
69
+ }
70
+ }
71
+ while (zeroCount > 0 ) {
72
+ nums[n - zeroCount-- ] = 0 ;
73
+ }
74
+ }
75
+ }
42
76
```
43
77
44
78
### ** ...**
Original file line number Diff line number Diff line change 28
28
### ** Python3**
29
29
30
30
``` python
31
-
31
+ class Solution :
32
+ def moveZeroes (self , nums : List[int ]) -> None :
33
+ """
34
+ Do not return anything, modify nums in-place instead.
35
+ """
36
+ if not nums:
37
+ return
38
+ n = len (nums)
39
+ zero_count = 0
40
+ for i in range (n):
41
+ if nums[i] == 0 :
42
+ zero_count += 1
43
+ else :
44
+ nums[i - zero_count] = nums[i]
45
+ while zero_count > 0 :
46
+ nums[n - zero_count] = 0
47
+ zero_count -= 1
32
48
```
33
49
34
50
### ** Java**
35
51
36
52
``` java
37
-
53
+ class Solution {
54
+ public void moveZeroes (int [] nums ) {
55
+ int n;
56
+ if (nums == null || (n = nums. length) < 1 ) {
57
+ return ;
58
+ }
59
+ int zeroCount = 0 ;
60
+ for (int i = 0 ; i < n; ++ i) {
61
+ if (nums[i] == 0 ) {
62
+ ++ zeroCount;
63
+ } else {
64
+ nums[i - zeroCount] = nums[i];
65
+ }
66
+ }
67
+ while (zeroCount > 0 ) {
68
+ nums[n - zeroCount-- ] = 0 ;
69
+ }
70
+ }
71
+ }
38
72
```
39
73
40
74
### ** ...**
Original file line number Diff line number Diff line change 1
1
class Solution {
2
2
public void moveZeroes (int [] nums ) {
3
- if (nums == null || nums .length <= 1 ) {
3
+ int n ;
4
+ if (nums == null || (n = nums .length ) < 1 ) {
4
5
return ;
5
6
}
6
- int count = 0 , length = nums . length - 1 ;
7
- for (int i = 0 ; i <= length ; i ++ ) {
7
+ int zeroCount = 0 ;
8
+ for (int i = 0 ; i < n ; ++ i ) {
8
9
if (nums [i ] == 0 ) {
9
- count ++ ;
10
+ ++ zeroCount ;
10
11
} else {
11
- nums [i - count ] = nums [i ];
12
+ nums [i - zeroCount ] = nums [i ];
12
13
}
13
14
}
14
- while (count -- > 0 ) {
15
- nums [length - count ] = 0 ;
15
+ while (zeroCount > 0 ) {
16
+ nums [n - zeroCount -- ] = 0 ;
16
17
}
17
18
}
18
19
}
Original file line number Diff line number Diff line change
1
+ class Solution :
2
+ def moveZeroes (self , nums : List [int ]) -> None :
3
+ """
4
+ Do not return anything, modify nums in-place instead.
5
+ """
6
+ if not nums :
7
+ return
8
+ n = len (nums )
9
+ zero_count = 0
10
+ for i in range (n ):
11
+ if nums [i ] == 0 :
12
+ zero_count += 1
13
+ else :
14
+ nums [i - zero_count ] = nums [i ]
15
+ while zero_count > 0 :
16
+ nums [n - zero_count ] = 0
17
+ zero_count -= 1
You can’t perform that action at this time.
0 commit comments