283. 移动零
难度简单1128
给定一个数组 nums
,编写一个函数将所有 0
移动到数组的末尾,同时保持非零元素的相对顺序。
示例:
输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
class Solution {
//快慢指针,fast不断移动,当nums[fast] != val, nums[slow] = nums[fast]赋值,slow++,最后[0, slow]是删除了val的数组
public void moveZeroes(int[] nums) {
int i = removeElement(nums, 0);
for(; i < nums.length; i++){
nums[i] = 0;
}
return;
}
int removeElement(int[] nums, int val){
int fast = 0, slow = 0;
while(fast < nums.length){
if(nums[fast] != val){
nums[slow] = nums[fast];
slow++;
}
fast++;
}
return slow;
}
}