Skip to content

Commit 923c07b

Browse files
committed
feat: add python and java solutions to leetcode problem: No.0283
1 parent 2bfafc4 commit 923c07b

File tree

4 files changed

+97
-11
lines changed

4 files changed

+97
-11
lines changed

solution/0200-0299/0283.Move Zeroes/README.md

+36-2
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,49 @@
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
### **...**

solution/0200-0299/0283.Move Zeroes/README_EN.md

+36-2
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,47 @@
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 numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
class 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 numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
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

0 commit comments

Comments
 (0)