【题目】
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
来源:leetcode
链接:https://leetcode-cn.com/problems/move-zeroes/
【示例】
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序
【代码】
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int len=nums.size(),cnt=0;
for(int i=0;i<len;cnt++)
if(!nums[i]){
nums.push_back(0);
nums.erase(nums.begin()+i);
if(cnt>=len)
break;
}else
i++;
}
};
【双指针大法】
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int len=nums.size(),i=0,j=0;
for(;j<len;j++)
if(nums[j])
nums[i++]=nums[j];
for(;i<len;i++)
nums[i]=0;
}
};