class Solution {
public:void moveZeroes(vector<int>& nums) {if(nums.size() > 1) {vector<int> a;// 找到0的位置int i = 0;int right = nums.size() - 1;while(i < right){if(nums[i] == 0){for(int j = i; j< right; j++){swap(nums[j], nums[j+1]);}right -= 1;}elsei += 1;}} }void swap(int& a,int& b){int tmp;tmp=a;a=b;b=tmp;}};
Thinking:
原地变化
1 要找0的位置 要移动 移动完后剩下的元素位置会变 for不适合
2 边找边移动 while
官方题解:
1 增加空间
2 快排(等到后面复习了快排再看)