题目:
思路: 双指针,i和j。当i和j所指元素都不为0时,他们同时向后走,当j所指元素为0时,只走j,i固定。这样下来,i就指向最后一个非0元素的下一个位置,j就指向那些0元素之后的第一个非0元素,交换即可。
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int i=0,j=0;
while(j<nums.size()){
if(nums[j] != 0){
swap(nums[i],nums[j]);
i++;
}
j++;
}
}
};