Description:
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.
思路:本题要求移除数组中存在的 0,要求不占用额外空间且尽量使用较少的步骤。考虑遍历数组,增加一个变量表示非 0 的元素,把非 0 元素和前面的 0 互换。
C++ 代码
class Solution {
public:
void moveZeroes(vector<int>& nums) {
for (int i=0,j=0; i<nums.size(); i++){
if(nums[i])
swap(nums[i],nums[j++]);
}
}
};
运行时间:16ms
运行内存:9.4M
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于