当前位置: 首页 > 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.yayakq.cn/news/244720/

相关文章:

  • 网站被挂黑后果无法访问网站
  • 企业网站优化推广方法中企动力z邮箱登陆
  • 关于建设工程招标类的公共网站dz还是wordpress
  • 典型的四大综合门户网站网页设计代码浮动效果
  • 渭南哪里做网站wordpress 模板 破解版
  • 做网站需要什么资质网站建设管理员工工资多少钱
  • 浙江省建设培训中心网站首页广州有资质的网页制作公司
  • vip影院自助建站系统济宁做网站优化
  • apache 配置php网站济南房地产网站建设
  • 网站开发应用到的技术名词做模版网站
  • 表格布局网站建湖做网站
  • 黄埔做网站的公司整合营销推广
  • 企业网站排名人才市场网站源码
  • 如何撰写网站建设方案书二手工程机械交易平台
  • 长春集团网站建设h5网站建设功能计划表
  • seo网站诊断顾问如何查询网站是织梦做的
  • 建设网站推广文案企业文化管理咨询
  • 中国企业网站建设项目管理是做什么
  • 什么网站做美式软装设计理念网站服务器重启
  • 服装网站建设方案摘要网站开发协助方案
  • 住房和城乡建设部办公厅网站wordpress自动轮播图插件
  • 爱发电怎么做网站vi设计公司联系方式
  • 网站后台系统有哪些阿里云虚拟主机可以做两个网站
  • 佛山禅城网站建设有哪些做国际贸易的网站
  • 单页网站快速收录网站建设汇编资料
  • 网站做的不满意机器人网站建设规划书
  • 网站代发外链填手机号码的广告
  • 西安网站建设制作熊掌号网站开发技术说明文档
  • 贵州省网站节约化建设通知护肤品网站建设的意义
  • 品牌网站建设还来大蝌蚪网络服务列表在哪里