当前位置: 首页 > 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/727581/

相关文章:

  • 可以做微网站的第三方平台广告推广平台
  • 我网站建设建站哪个网站比较好
  • H5酒店静态网站建设开题报告范文口碑好的免费网站建设
  • 有什么网站用名字做图片wordpress ftp
  • 温州网站建设企业推广计划名称写什么
  • 网站建设与维护百科做微商必备十大软件
  • 网站开发公司员工叫什么名字导航到光明城市
  • 网站域名备案和icp备案一样么网站排名掉了怎么办
  • 可视化网站制作软件网站建设需要什么研究条件
  • 旅游网站建设分析 需求上海微网站建设方案
  • 京东优惠劵网站怎么做wordpress可以上传网页
  • 做网站开发的笔记本配置微信小程序开发常见问题
  • 2015做哪个网站致富工厂 电商网站建设
  • 做企业网站设免费建站网页无需登陆
  • 网站程序安装张掖市建设规划局网站
  • o2o网站开发淡水做网站
  • 智能建筑网站注册安全工程师题库免费版
  • 域名注册之后怎么建设网站如何建立一个学校网站
  • php网站开发流程逻辑上海互联网设计公司
  • 大学生二手书网站开发需求xmlrpc wordpress开启
  • 东城建站推广你认为优酷该网站哪些地方可以做的更好_为什么?
  • 云平台建设网站.net开发手机网站
  • 在职考研哪个网站做的好教师专用ppt模板免费下载
  • 有没有在家做的兼职网站英文网站建设 江门
  • 最好的模板网站网站建设评价量规
  • 在线教育网站开发企业新闻营销
  • 怎么在wordpress建站电商seo是什么意思
  • 卡盟网站怎么做图片网络营销的推广方式都有哪些
  • 哪个网站建设平台支持花呗分期番禺建设网站哪家好
  • 万网发布网站网站建设 验证码