题目描述
思路
思路:
使用双指针,第一个指针从头遍历数组中的所有元素,第二个指针记录数组中不为0的元素,最后在第二个指针后面添加0即可。
代码:
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int j=0;
for(int i=0;i<nums.size();i++){
if(nums[i]!=0){
nums[j] = nums[i];
j++;
}
}
while(j!=nums.size()){
nums[j]=0;
j++;
}
}
};
运行结果:
总结与反思:
之前做过类似的题目,所以一下子就想到了这个接近最优的方法。