void moveZeroes(vector<int>& nums) {
int n = nums.size();</int>
// Count the zeroes int numZeroes = 0; for (int i = 0; i < n; i++) { numZeroes += (nums[i] == 0); } // Make all the non-zero elements retain their original order. vector<int> ans; for (int i = 0; i < n; i++) { if (nums[i] != 0) { ans.push_back(nums[i]); } } // Move all zeroes to the end while (numZeroes--) { ans.push_back(0); } // Combine the result for (int i = 0; i < n; i++) { nums[i] = ans[i]; }
}
//原数组操作
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int lastnonezero=0;
for(int i=0;i<nums.size();i++)
{
if(nums[i]!=0)
{
nums[lastnonezero++]=nums[i];
}
}
for(int i=lastnonezero;i<nums.size();i++)
{
nums[i]=0;
}
return;
}
};</int>