Move Zeroes -- leetcode
来源:互联网 发布:手机qq防盗软件 编辑:程序博客网 时间:2024/05/01 02:10
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.
Credits:
算法一
题目要求保持非0数据的先生顺序。
将非0整数先左紧凑。
剩余空间填充0.
在leetcode上实际执行时间为40ms。
class Solution {public: void moveZeroes(vector<int>& nums) { int p = 0; for (auto n: nums) { if (n) nums[p++] = n; } for (; p<nums.size(); ++p) nums[p] = 0; }};
算法二,采用交换
思路同上。
比较奇怪的是,代码不但简短了。而且执行时间比上面还小了。在leetcode上,只需要20ms。是上面的一半。
swap做的操作比上面更多。
但是,循环次数却比上面减少了(在有0的情况下)。 这可能是带来性能提升的原因。
class Solution {public: void moveZeroes(vector<int>& nums) { for (int p=0, q=0; q<nums.size(); q++) { if (nums[q]) swap(nums[p++], nums[q]); } }};
0 0
- leetcode 283: Move Zeroes
- leetcode - Move Zeroes
- Leetcode: Move Zeroes
- LeetCode - Move Zeroes
- LeetCode-Move Zeroes
- [LeetCode]Move Zeroes
- leetcode-283-Move Zeroes
- [leetcode 283]Move Zeroes
- LeetCode---Move Zeroes
- LeetCode 283----Move Zeroes
- LeetCode Move Zeroes
- LeetCode Move Zeroes
- Leetcode #283 Move Zeroes
- leetcode: (283) Move Zeroes
- [LeetCode 283] Move Zeroes
- 【LeetCode】Move Zeroes
- LeetCode-Move Zeroes
- [LeetCode] Move Zeroes
- HttpURLConnection的使用(网络通信)
- MFC设置工具栏按钮按下效果
- struct和typedef struct
- servlet编码,解决中文乱码
- React 双向绑定的实现
- Move Zeroes -- leetcode
- struct meminfo分析
- javaweb文件下载中文名乱码问题
- Makefile编写
- JS获取标签属性值
- 个股牛熊市场的判断标准(学习笔记)
- HUD显示文字,osgText的使用
- Source Insight 3 出现错误:Error:File read error
- MD5和SHA1