Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements.
Example:
Input:[0,1,0,3,12]Output:[1,3,12,0,0]
Note:
- You must do this in-place without making a copy of the array.
- Minimize the total number of operations.
代码:
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int n=0;
int pos=0;
for(int i=0;i<nums.size();++i)
{
if(nums[i]==0)
{
++n;
}
else
{
nums[pos]=nums[i];
++pos;
}
}
for(int i=nums.size()-1;i>nums.size()-n-1;--i)
{
nums[i]=0;
}
}
};
本文介绍了一种算法,用于将数组中的所有零元素移动到数组的末尾,同时保持非零元素的相对顺序不变。该算法在不复制数组的情况下实现,以减少操作次数。
1291

被折叠的 条评论
为什么被折叠?



