LeetCode283Move Zeroes
来源:互联网 发布:centos ssh key登录 编辑:程序博客网 时间:2024/06/04 18:49
最近在刷leetcode的题库,强化自己的算法水平和编程能力,感觉收获很多,有些自己的解法和理解,在这里分享给大家。
先上题目:
题目大意:
给一数组,把其中的0移到最后面,同时其他元素相对位置不变。注意要原地操作不能使用额外的O(n)空间
技巧:
用一变量计数器cnt记录在该数字前零的个数
示例代码:
#include <iostream>#include <vector>using namespace std;class Solution {public: void moveZeroes(vector<int>& nums) { int cnt = 0; int n = nums.size(); for (int i = 0; i < n; i++) { if (nums[i] == 0) { cnt++; } else { nums[i-cnt] = nums[i]; if (cnt > 0) // 注意这里要进行判断,有可能数组中没0 nums[i] = 0; } } }};int main() { vector<int> m; int n; cin >> n; int t; for (int i = 0; i < n; i++) { cin >> t; m.push_back(t); } Solution s; s.moveZeroes(m); for (int i = 0; i < n; i++) { cout << m[i] << endl; }}
运行截图:
1 0
- LeetCode283Move Zeroes
- LeetCode283Move Zeroes
- Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- leetcode_Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- Move Zeroes
- 关于for-each与删除集合节点的思考
- [Leetcode] Linked List Cycle II
- JAVA笔试题笔记(三)
- CSS实现单行、多行文本溢出显示省略号(…)
- 对于面向对象里加强
- LeetCode283Move Zeroes
- 微信公众平台jsapi开发教程(3)页面初步接入微信jsapi
- Redis学习笔记
- MJExtension使用指导(转)
- 第一本十三章人机猜拳
- java Collection集合删除某一元素方法汇总
- Hiberante与IBatis 异同比较,及适用场合
- linux 0号进程和1号init进程
- 触摸Java常量池