当前位置: 首页 > news >正文

河南省建设监理协会官方网站下载应用商店

河南省建设监理协会官方网站,下载应用商店,外国人做那个视频网站,昆明网络建设难度:简单题 题目 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 思路: 一开始想,从前往后遍历&am…

难度:简单题

题目

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

思路:

一开始想,从前往后遍历,遇到0就挪到最后。类似于冒泡的思想,但是这样做的话时间复杂度可能是 三次方。

再想,从前往后遍历,利用 stl-vector 的特性,遇到0就从这个vector里面删除当前元素,但是删除这个元素的话,该vector数组结构会发生变化,即当前下标指向的自动变为下一个元素,所以下标这里要减1。

代码:

class Solution {
public:void moveZeroes(vector<int>& nums) {// 要保持非零元素的相对顺序,不能排序!// 依次遍历,遇到0元素,则用冒泡排序的思想挪到最后 时间复杂度 三次方??// 思路,依次遍历,如果遇到0,则从vector中删掉该元素,并记录删了几个,最后添上去// 遍历时删元素会不会使数组下标发生变化?会使数组结构发生变化!int i = 0;int n = 0;  // 记录删掉了几个0for(i = 0; i < nums.size(); i++){if(nums[i] == 0){nums.erase(nums.begin()+i);n++;i--;    // 删掉当前元素,数组会立即发生变化!}}// 删了几个元素,后面补几个0        for(i = 0; i < n; i++){nums.push_back(0);}}
};

运行结果:

好吧,看了一下官方双指针代码,它的效果要好一点。。

class Solution {
public:void moveZeroes(vector<int>& nums) {int left = 0, right = 0;int n = nums.size();while(right < n){if(nums[right]){swap(nums[left], nums[right]);left++;}right++;}}
};

 它的思路:

 

 

 

http://www.tj-hxxt.cn/news/3491.html

相关文章:

  • wordpress网站统计插件下载天津百度推广开户
  • 北京设计网站建设百度标记号码认证平台
  • 网站运营的内容东莞关键词优化实力乐云seo
  • 可以做展示页面的网站seo是什么的简称
  • 网站文件上传完成后打开网站显示网站建设中怎么回事?网络营销公司经营范围
  • 网站活动推广方案重庆百度开户
  • 一级a做囗爰片免费网站微信客户管理系统
  • 最牛的SEO教程网站迅雷磁力链bt磁力天堂
  • 做网站的程序员工资大约月薪企业管理培训班哪个好
  • 想做机械加工和橡胶生意怎么做网站seo优化总结
  • 一流专业建设规划seo排名优化服务
  • 公司简介英文怎么说seopc流量排名官网
  • 深圳南山做网站的公司bt种子bt天堂
  • 做美食视频的网站有哪些郑州官网网站优化公司
  • 电子商务网站建设的方法和工具营销策划与运营公司
  • 淘宝客优惠券网站怎么做的友情链接收录
  • 遵义网站推广网站查询服务器
  • 有单独做网站维护的必要吗推广小程序拿佣金
  • 团队拓展训练上海百度seo
  • 网站菜单栏代码谷歌首页
  • 网站开发程序制作域名备案大连seo网站推广
  • 中国建设银行密码重置网站网络销售管理条例
  • 网站界面可以做版权吗网络推广营销方案免费
  • 手机网站跳转代码企业如何做好网络营销
  • 如何帮人做网站赚钱吗游戏代理怎么找渠道
  • 手机网页及网站设计 pdf志鸿优化设计答案网
  • 网站首页设计图片简约百度搜索引擎优化的推广计划
  • 建设一个电子商务网站的基本步骤能翻到国外的浏览器
  • 前端做网站seo推广优化
  • 做淘客网站去哪里购买空间找网络公司做推广费用