Move Zeroes
来源:互联网 发布:基音检测算法 编辑:程序博客网 时间:2024/05/08 15:30
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.
方法1:
class Solution {public: void moveZeroes(vector<int>& nums) { int zero=0; while(zero<nums.size()&&nums[zero]!=0) zero++; int nonzero = zero+1; while(nonzero<nums.size()&&nums[nonzero]==0) nonzero++; while(nonzero<nums.size()){ if(nums[nonzero]==0) nonzero++; else swap(nums[nonzero++],nums[zero++]); } }};
方法2:同方法1一样,但是代码更加简洁。
class Solution {public: void moveZeroes(vector<int>& nums) { int id = 0 ; for(int i = 0 ; i < nums.size() ; ++ i){ if(nums[i]!=0) swap(nums[id++],nums[i]); } }};
0 0
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Python的设计模式编程入门指南
- Linux下简单进度条实现
- 【Srm590】Fox And City(fox)
- Activity向Service传值1 getdoubleExtra
- C/C++ 书籍目录
- Move Zeroes
- Netty学习-03-SelectorServerSocketChannel
- 数据结构 JavaScript实现 (列表 栈)
- hdoj-1262-寻找素数对(解题报告)
- 理解Makefile
- 图的基本操作
- 【J2EE】—概览三步走
- 字符串的排列
- 结对编程之四则运算随机生成