题目
思路
利用双指针,先找到第一个为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;}
};
小结:这个题比较简单