解题思路
此处撰写解题思路
数组中元素变化考虑快慢指针
设置初始快慢指针fastdex=0和lowdex=0
遍历数组
fastdex不断后移,直到遇见不等于0的时候,我们可以将快指针的值赋给慢指针
即慢指针从0开始等待快指针遇到第一个不为0的数,然后将这个不为0的数赋给慢指针
赋值之后就可以慢指针后移一位,等待下一个不为0的数
这只是将所有不为0的数去掉
但题目要求我们将0移到后面
所以我们从lowdex开始遍历,将数组后面的值都赋为0
代码
class Solution {
public void moveZeroes(int[] nums) {
int n = nums.length;
int fastdex = 0;
int lowdex=0;
for(;fastdex<n;fastdex++){
if(nums[fastdex] != 0){
nums[lowdex] = nums[fastdex];
lowdex++;
}
}
for(;lowdex<n;lowdex++){
nums[lowdex]=0;
}
}
}