题目链接:https://leetcode-cn.com/problems/move-zeroes/submissions/
题意:给你一个包含若干个0的数组,要求把所有的0移动到后面,且保持其他数相对顺序不变。
分析:第一个方法是遇到0就把后一位移过来,最后还剩多少位为空就在空的位置补0
第二个方法是双指针,左指针指向已经处理好的尾部,右指针指向待处理头部,右指针一直往右遍历,遇到非0数就和左指针交换,同时左指针往右移动一格。
class Solution { public: void moveZeroes(vector<int>& nums) { int n=nums.size(); int left=0,right=0; while(right<n){ if(nums[right]){ swap(nums[left],nums[right]); left++; } right++; } } };