283. Move Zeroes
2016-03-20 17:53
239 查看
Given an array
to the end of it while maintaining the relative order of the non-zero elements.
For example, given
be
Note:
You must do this in-place without making a copy of the array.
Minimize the total number of operations
运行结果:
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,
numsshould
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
#include <iostream> #include <vector> #include <algorithm> using namespace std; class Solution { public: void moveZeroes(vector<int> &nums) { int _count = 0; // 删除与0相等的所有元素 nums.erase(remove_if(nums.begin(), nums.end(), [&_count](int elem){ if (elem == 0){ ++_count; }; return elem == 0; }), nums.end()); for (int i = 0; i < _count; ++i) { nums.push_back(0); } } }; void main() { Solution s; vector<int> vi{ 0, 1, 0, 3, 12 }; cout << "原来容器中元素为:" << endl; copy(vi.begin(), vi.end(), ostream_iterator<int> (cout, " ")); cout << endl; // 把值为0的所有元素移动到容器的后面 s.moveZeroes(vi); cout << "调整后的容器元素为:" << endl; copy(vi.begin(), vi.end(), ostream_iterator<int> (cout, " ")); cin.get(); }
运行结果:
相关文章推荐
- Linux内核分析第四周学习总结
- UDP
- 处理数据时,hadoop如何找最近的数据节点呢?
- struts 整合Hibernate 报错: no session or session was closed
- CSS元素分类
- Android Material Design(7) 转场动画的使用
- leetcode--Majority Element
- HTML5 Canvas 画布画出一条直线
- Help Hanzo (素数筛+区间枚举)
- sdut2605山东省赛第四届/( A^f(1)+A^f(2)+ ... + A^f(n) )% P/存储中间值/将大数打表并用两个数组组合表示
- 构建之法阅读笔记二。
- 笔记-iOS 视图控制器转场详解(上)
- 比较ArrayList、LinkedList、Vector
- mongodb安装启动mongodb
- Python class method
- MarkDown 一些快捷键 和 语法
- Linux下程序安装:rpm工具
- Hive Join
- iOS开发笔记之三十三——常用的MAC以及Xcode操作快捷键
- 周赛A - A,,codeforces651A