0283 - Move Zeroes
Given an integer array nums, move all 0's to the end of it while maintaining the relative order of the non-zero elements.
Note that you must do this in-place without making a copy of the array.
Examples
Input: nums = [0,1,0,3,12] Output: [1,3,12,0,0]
Input: nums = [0] Output: [0]
Constraints
1 <= nums.length <= 104 -231 <= nums[i] <= 231 - 1
Follow up: Could you minimize the total number of operations done?
Java Solution
class Solution {
public void moveZeroes(int[] nums) {
int p1 = 0;
int p2 = 0;
while(p2 < nums.length) {
if(nums[p1] == 0) {
if(nums[p2] == 0) {
p2++;
} else {
nums[p1++] = nums[p2];
nums[p2++] = 0;
}
} else {
p1++;
p2++;
}
}
}
}
Last updated