File tree Expand file tree Collapse file tree 4 files changed +97
-11
lines changed
solution/0200-0299/0283.Move Zeroes Expand file tree Collapse file tree 4 files changed +97
-11
lines changed Original file line number Diff line number Diff line change 3030<!-- 这里可写当前语言的特殊实现逻辑 -->
3131
3232``` 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
3450```
3551
3652### ** Java**
3753
3854<!-- 这里可写当前语言的特殊实现逻辑 -->
3955
4056``` 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+ }
4276```
4377
4478### ** ...**
Original file line number Diff line number Diff line change 2828### ** Python3**
2929
3030``` 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
3248```
3349
3450### ** Java**
3551
3652``` 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+ }
3872```
3973
4074### ** ...**
Original file line number Diff line number Diff line change 11class Solution {
22 public void moveZeroes (int [] nums ) {
3- if (nums == null || nums .length <= 1 ) {
3+ int n ;
4+ if (nums == null || (n = nums .length ) < 1 ) {
45 return ;
56 }
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 ) {
89 if (nums [i ] == 0 ) {
9- count ++ ;
10+ ++ zeroCount ;
1011 } else {
11- nums [i - count ] = nums [i ];
12+ nums [i - zeroCount ] = nums [i ];
1213 }
1314 }
14- while (count -- > 0 ) {
15- nums [length - count ] = 0 ;
15+ while (zeroCount > 0 ) {
16+ nums [n - zeroCount -- ] = 0 ;
1617 }
1718 }
1819}
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