-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMoveZeroes.java
More file actions
34 lines (31 loc) · 880 Bytes
/
MoveZeroes.java
File metadata and controls
34 lines (31 loc) · 880 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package easy;
/**
*
* ClassName: MoveZeroes
* @author chenyiAlone
* Create Time: 2019/02/04 23:12:13
* Description: No.283
* Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements.
Example:
Input: [0,1,0,3,12]
Output: [1,3,12,0,0]
Note:
You must do this in-place without making a copy of the array.
Minimize the total number of operations.
*/
public class MoveZeroes {
public void moveZeroes(int[] nums) {
if (nums.length < 2) return;
int k = 0;
int start = 0;
while (k < nums.length) {
if (nums[k] != 0) {
nums[start++] = nums[k];
}
k++;
}
while (start < k) {
nums[start++] = 0;
}
}
}