0283. Move Zeroes
https://leetcode.com/problems/move-zeroes
Description
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.
Example 1:
**Input:** nums = [0,1,0,3,12]
**Output:** [1,3,12,0,0]
Example 2:
**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?
ac
class Solution {
public void moveZeroes(int[] nums) {
// edge cases
if (nums == null || nums.length == 0) return;
// 2 pointers
int f = 0, s = 0;
for (;f < nums.length; f++) {
if (nums[f] == 0) continue;
nums[s++] = nums[f];
}
for (; s < nums.length; s++) {
nums[s] = 0;
}
}
}
Last updated
Was this helpful?