/**
* @brief 给定一个数组nums,将所有的0移动到数组的末尾,同时保留非0元素的相对顺序;
* @param nums
*/
void moveZeros(vector<int>& nums){
int i = 0,poz = 0;
for(int i = 0; i < nums.size() && poz < nums.size();i++){
while(poz < nums.size() && nums[poz] == 0)
poz++;
if(poz < nums.size())
nums[i]=nums[poz];
else
i--;
poz++;
}
for(;i<nums.size();i++){
nums[i] = 0;
}
}
void moveZeros(vector<int> &nums)
{
int p1 = 0,p2=0;
for(;p1<nums.size() && nums[p1]!=0;p1++);
for(p2=p1;p2<nums.size();p2++){
if(nums[p2] == 0) continue;
nums[p1++] = nums[p2];
}
//set zero for rest items
while(p1<nums.size()){
nums[p1++] = 0;
}
}
怕什么真理无穷,进一寸有一寸的欢喜。---胡适
浙公网安备 33010602011771号