博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Move Zeroes
阅读量:5158 次
发布时间:2019-06-13

本文共 1340 字,大约阅读时间需要 4 分钟。

题目:

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.

解析:

自己写的代码

1 class Solution { 2 public: 3     void moveZeroes(vector
& nums) { 4 vector
::size_type i; 5 for(i=0;i < nums.size();i++) 6 { 7 vector
::iterator it = find(nums.begin(),nums.end()-i,0); 8 if(it == nums.end()-i) 9 break;10 else11 {12 nums.erase(it);13 nums.push_back(0);14 }15 }16 }17 };

最然通过了,但是时间长,感觉想法也比较笨,事实上通过一次遍历即可

1 class Solution { 2 public: 3     void moveZeroes(vector
& nums) { 4 int n = nums.size(); 5 int left = 0, right = 0; 6 while (right < n){ 7 if (nums[right]){ 8 nums[left] = nums[right]; 9 left++;10 }11 right++;12 }13 while (left < n)14 nums[left++] = 0;15 }16 };

 

转载于:https://www.cnblogs.com/raichen/p/4930095.html

你可能感兴趣的文章
Git的使用和配置小白必看都是干货,为您解惑
查看>>
使用静态函数impl模式做接口
查看>>
SharePoint【学习笔记】-- SharePoint Windows认证模式下 限制人员选取器能访问OU
查看>>
日常(身怀绝技的大家)
查看>>
python之禅
查看>>
C#索引器-索引器与数组属性的比较
查看>>
RFC2616-HTTP1.1-Methods(方法规定部分—译文)
查看>>
【转】 STL中的set容器的一点总结
查看>>
jquery中的$("#id")与document.getElementById("id")的区别
查看>>
JZOJ5771 遨游
查看>>
使用线程池测试cpu的并发计算能力
查看>>
C++Primer第五版——习题答案详解(一)
查看>>
Running an etcd cluster on localhost
查看>>
Android Spinner,下拉菜单的功能和用法
查看>>
Proteus中MATRIX-8X8 LED灯的连接
查看>>
第10章 文档对象模型DOM 10.1 Node节点类型
查看>>
有时候用having count(*) > xx 挺好
查看>>
输入的是util包下面的 时间, 接受的是java.sql.date 或者 java.util.date类型
查看>>
火眼推出Windows免费渗透测试套件,包含140多款工具
查看>>
docker--容器和镜像的导入导出及部署
查看>>