题目
思路
利用双指针,先找到第一个为0的地方指向,指针2指向下一个,指针1之前是已经处理好的数据,指针2进行遍历,遇到非零则与指针1数据交换,然后指针1++。
代码
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int l = 0, r = 0;
int len = nums.size();
while (nums[r++] && r < len)
;
l = r - 1;
for (r; r < len; r++) {
if (nums[r] != 0) {
nums[l] = nums[r];
nums[r] = 0;
l++;
}
}
return;
}
};
小结:这个题比较简单