题目链接:https://leetcode-cn.com/problems/move-zeroes/
快慢指针,快指针找到一个非零元素,就换到当前慢指针指向位置,慢指针右移,快指针右移;否则只有快指针右移。最后将慢指针右侧所有元素都置0
代码如下:
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int l = 0, r = 0;
while(r < nums.size()) {
if(nums[r] != 0) {
nums[l++] = nums[r];
}
r++;
}
for(int i = l; i < nums.size(); i++) {
nums[i] = 0;
}
}
};