283. Move Zeroes的C++解法
来源:互联网 发布:sons of day 知乎 编辑:程序博客网 时间:2024/06/09 23:59
本题要求不使用更多的空间并使操作数最少。我的思路是i代表遍历整个vector的下标,j代表已经交换到了哪个位置。把nums[j]换到nums[i]处,剩下的全部补0就行了。
class Solution {public:void moveZeroes(vector<int>& nums) {int j = 0;for (int i = 0; i < nums.size(); i++){if (nums[i] != 0){nums[j] = nums[i];j++;}}for (j; j < nums.size(); j++) nums[j] = 0;}};
操作数更少的算法:
void moveZeroes(vector<int>& nums) { int last = 0, cur = 0; while(cur < nums.size()) { if(nums[cur] != 0) { swap(nums[last], nums[cur]); last++; } cur++; }}
last停留在0处直到被换走为止,相当于一点一点把0往后挪。比我写的更简单。
0 0
- 283. Move Zeroes的C++解法
- 283. Move Zeroes (C++)
- 283.Move Zeroes(C语言)
- 283. Move Zeroes(C++/Java)
- Move Zeroes问题及解法
- LeetCode283——Move Zeroes我的解法
- LeetCode 283. Move Zeroes C语言
- leetcode-283. Move Zeroes c语言
- LeetCode 283. Move Zeroes 题解(C++)
- leetcode 283. Move Zeroes(C语言)
- 283.Move Zeroes
- 283. Move Zeroes
- 283. Move Zeroes
- 283. Move Zeroes
- 283. Move Zeroes
- 【LeetCode】283. Move Zeroes
- 283. Move Zeroes
- 283. Move Zeroes
- 老鸟程序员才知道的40个小技巧
- Spring配置JNDI及通过JNDI获取DataSource
- 黄聪:phpexcel中文教程-设置表格字体颜色背景样式、数据
- Java ---Listener监听器
- [程序员面试宝典]空格替换
- 283. Move Zeroes的C++解法
- 图像匹配算法研究之sift算法
- MyBatis 延迟加载,一级缓存,二级缓存设置
- PHP memcache扩展安装 for Windows
- 兼容360极速模式和兼容模式
- @ResponseBody的使用讲解
- 执行 completebulkload 操作报错
- ACM-完美立方
- Ubuntun16.04如何将图标放到下面