思路 同向双指针,一个用于记录处理好的序列,一个用于滑动未处理的序列遇到不等于0进行交换,遇到等于0进行跳过最后left前都是经过挑选的非0元素,left后都是0元素 代码 class Solution { public: void moveZeroes(vector<int>& nums) { int n=nums.size(),left=0,right=0; while(right<n){ if(nums[right])//不等于0进行交换 swap(nums[left++],nums[right++]); else right++;//等于0不进行交换 } } };