Leetcode - Move Zeroes
来源:互联网 发布:sql数据库文件修复 编辑:程序博客网 时间:2024/06/07 05:49
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:
1. You must do this in-place without making a copy of the array.
2. Minimize the total number of operations.
//思路:从左往右,遇到0,则0后面的所有元素往前移动一位,有多少0,移动多少回,最后末尾添加0void moveZeroes(vector<int>& nums) { int count=0; for(int i=0;i<nums.size();i++) if(nums[i]==0) count++; int tmp=count; for(int i=0; tmp>0 && i<nums.size(); i++){ if(nums[i]==0){ for(int j=i;j<nums.size()-1;j++) nums[j]=nums[j+1]; tmp--; i--; // in case that start with 00 } } for(int i=0;i<count;i++) nums[nums.size()-1-i]=0; }//别人的做法:void moveZeroes(vector<int>& nums) { int j = 0; // move all the nonzero elements advance for (int i = 0; i < nums.size(); i++) { if (nums[i] != 0) { nums[j++] = nums[i]; } } for (;j < nums.size(); j++) { nums[j] = 0; } }
刷leetcode的最爽的地方不在于一次次的Accepted,而是自己的绞尽脑汁,想出来自认为还不错的代码,AC后看到讨论区里,大神们更优雅更精致的代码后,被虐的那个酸爽。大呼,哎呦卧槽,我怎么没想到。。。
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
- Android Studio 将moudle打包成jar
- UNIX网络编程--非阻塞connect的实现
- Android中封装View提供接口供点击事件回调的方法及使用
- 常见正则表达式匹配
- servlet安全问题
- Leetcode - Move Zeroes
- 3.12(反转单结点)
- Comparator 和 Comparable 比较
- Android之NineOldAndroids实现绚丽的ListView左右滑动删除Item效果
- android_Scroller 弹性滑动源码分析
- 华为机考题 002计算字符串中字符的个数
- Codeforces Round #369 (Div2) ABCDE
- 快游加速器 V2009 官方最新版
- Universal-Image-Loader源码阅读(34)-ImageDecoder