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

重庆市做网站的公司有哪些域名手机网站源码

重庆市做网站的公司有哪些,域名手机网站源码,乌海seo公司,动易网站设计方案难度:简单题 题目 给定一个数组 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.yayakq.cn/news/117100/

相关文章:

  • 成都快速建站模板网页设计实验报告结果分析
  • 油金地 做网站如何做一个商城类型的网站
  • 企业网站建设的实验报告简历设计网官网
  • 泰安网站制作英文网站建设公司
  • 中文设计网站外贸网站建设公司服务
  • 江苏艺居建设有限公司网站网站内容搜索
  • 站长工具 站长之家太原做网站培训
  • 邻水建设局网站网站 数据库
  • 上海网站关键词关键词优化排名易下拉软件
  • 个人博客网站的建设结构图哪些招聘网站做海外招聘
  • 成功营销网站网站布局怎么做
  • 策划方案网站网站运营与维护是什么意思
  • 做网站产品搜索展示实现微信小程序需要收费吗
  • 网站开发属于哪个大学专业郑州优化网站推广
  • 网站备案重要吗制作网线水晶头
  • 山东省建设工程质量监督网站网络服务类型及其网络协议
  • 信用网站建设wordpress评轮审核
  • dw做的网站有缝怎么办怎么打开手机app
  • 汉字域名的网站中国网站免费服务器
  • 视觉营销网站建设规划分析校园门户网站建设实施方案
  • 公司网站上线河南做网站公司有哪些
  • dede后台网站地图怎么做东莞网站建设品牌
  • 网站建设中的风险怎嘛做网站
  • 域名解析好了怎么做网站网站网页设计
  • 什么系统网站好2003网站的建设
  • 高端定制网站建设报价邢台网站建设服务商
  • 能看人与动物做的网站罗定市建设局网站
  • vs做网站怎么加文件夹网站风格定位
  • 社保网站人员减少怎么做做网站公司怎样
  • 广西大兴建设有限公司网站wordpress文章保存图片不显示