[LeetCode283]Move Zeroes
来源:互联网 发布:笑傲江湖 版本 知乎 编辑:程序博客网 时间:2024/06/05 17:06
题目来源:https://leetcode.com/problems/move-zeroes/
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.
For example, given nums = [0, 1, 0, 3, 12]
, after calling your function, nums
should be [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){//时间复杂度O(n)int newIndex = 0;for (int i = 0; i < nums.size(); ++i){if (nums[i] != 0){nums[newIndex++] = nums[i];}}for (; newIndex < nums.size(); ++newIndex){nums[newIndex] = 0;}}};
对数组进行一次遍历,记录下0的个数,同时将后面非零值往前移动,移动的位数为他前面的0的个数,最后根据0的个数在数组最后一次插入0,
时间复杂度为O(n)
class Solution{public:void moveZeroes(vector<int>& nums){int count = 0;for (int i = 0; i < nums.size(); ++i){if (nums[i] == 0){++count;}else{nums[i - count] = nums[i];}}for (int i = 0; i < count; ++i){nums[nums.size() - 1 - i] = 0;}}};那么只能用替换法in-place来做,需要用两个指针,一个不停的向后扫,找到非零位置,然后和前面那个指针交换位置即可
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++]);}}}};
0 0
- leetcode283 : Move Zeroes
- [LeetCode283]Move Zeroes
- leetcode283 Move Zeroes
- LeetCode283. Move Zeroes
- leetcode283: Move Zeroes
- Leetcode283. Move Zeroes
- leetcode283~Move Zeroes
- leetcode283. Move Zeroes
- LeetCode283. Move Zeroes 解答
- leetcode283. [Array]Move Zeroes My Submissions Question
- LeetCode283——Move Zeroes我的解法
- leetcode283---Move Zeroes(把0移到数组后面)
- Leetcode283 Move Zeros
- LeetCode283——Move Zeroes(将0移动到数组最后面)
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- linux下设计一个Shell脚本:判断当前工作目录下所有的文件类型。
- java jni 入门7 - 访问数组元素
- iOS中的协议与延展
- 杭电-4545魔法串(LCS)
- 属性动画之ValueAnimator
- [LeetCode283]Move Zeroes
- C++ DirectX 游戏开发视频教程 01 资源下载链接
- 猫都能学会的Unity3D Shader入门指南(一)
- ActionBar的使用以及例子
- elasticsearch geo_point 字段 经纬度地址字段返回距离信息
- Struts2 学习系列 (4) ValueStack和OGNL
- Windows10如何安装IIS(互联网信息服务)
- 字典树+AC自动机Hyper Prefix SetsUVA11488YTACM第一周E
- Qt之qSort