Lintcode 移动零
来源:互联网 发布:西门子s7200仿真软件 编辑:程序博客网 时间:2024/05/21 07:55
给一个数组 nums 写一个函数将 0 移动到数组的最后面,非零元素保持原数组的顺序
注意事项
1.必须在原数组上操作
2.最小化操作数
class Solution {public: /** * @param nums an integer array * @return nothing, do this in-place */ void moveZeroes(vector<int>& nums) { // Write your code here int temp = 0, a = 0; for (int i = 0; nums[i] == 0; i++){ a = nums[i]; for (int j = i + 1; nums[j] != 0; j++) { temp = a; a = nums[j]; nums[j] = temp; i++; } } }};
写出来的代码竟然 Runtime Error 超时;
网上参考别人的代码
思路:
1.首先确定right——-指向的是最右端不为零的数的下标;
2.从右向左依次迭代.
class Solution {public: /** * @param nums an integer array * @return nothing, do this in-place */ void moveZeroes(vector<int>& nums) { // Write your code here int len = nums.size(); int right = 0; for (int i = len-1; i >= 0; i--) { if (i >= 0 && nums[i] != 0) { right = i; break; } } for (int i = right; i >= 0; i--) { if (nums[i] == 0) { for (int j = i; j < right; j++) { swap(nums[j], nums[j+1]); } right--; } } return; }};
顺利通过;
阅读全文
0 0
- 移动零-lintCode
- LintCode:移动零
- LintCode - 539.移动零
- LintCode 539 移动零
- Lintcode 移动零
- LintCode之移动零
- LintCode 移动零 python
- Lintcode移动零
- 移动零-LintCode
- lintcode刷题-移动零 python
- LintCode-[容易] 539. 移动零
- [LintCode 539] 移动零(Python)
- Lintcode Python之移动零
- LintCode-矩阵归零
- lintcode-末尾的零
- LintCode 尾部的零
- LintCode: 矩阵归零
- lintcode ---- 尾部的零
- Python type的使用
- webpack3.0问题系列 ——postcss-loader的使用
- 视频教程:嵌入式stm32项目开发之心率检测仪的设计与实现
- 腾讯视频获取 MP4格式源并下载
- 测试
- Lintcode 移动零
- 关于Unity启动时间过长(启动黑屏时间长)的问题
- Android listview实现各种购物车的列子
- 报错 Refusing to install redux as a dependency of itself.
- mysql数据库入门基础精讲视频
- MySQL变量
- floyd算法
- 原始socket实现局域网ARP欺骗
- 判断上传图片的尺寸和大小 ----实战