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

网站中的下拉菜单重庆建设工程信息网三类人员

网站中的下拉菜单,重庆建设工程信息网三类人员,品牌推广理论,一个网站做多少关键词目录 题目描述 贪心直接插入排序 代码一: 代码二: 代码三: 题目描述 406. Queue Reconstruction by Height 贪心直接插入排序 先按照身高从大到小排序,身高相等的人谁的k小谁站前面。 然后按照直接插入排序的想法&#xf…

目录

题目描述

贪心+直接插入排序

代码一:

代码二:

代码三:


题目描述

406. Queue Reconstruction by Height

贪心+直接插入排序

先按照身高从大到小排序,身高相等的人谁的k小谁站前面。

然后按照直接插入排序的想法,将每个人插入到他应该到达的位置。

代码一:

复用输入数据people,手写直接插入排序

class Solution {
public:vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {int len = people.size();sort(people.begin(),people.end(),[](vector<int> &p1,vector<int> &p2){if(p1[0] > p2[0])return true;else if(p1[0] == p2[0])return p1[1] < p2[1];return false;});for(int i = 0;i <len;i++){if(people[i][1] < i){vector<int> temp = people[i];int pos = people[i][1];for(int j = i-1;j >= pos;j--){people[j+1] = people[j];}people[pos] = temp;}}return people;}
};

插入会很耗时,时间复杂度是O(logn+n^2)

代码二:

用vector自己的insert函数,位置指定用迭代器。随机迭代器支持+n操作

class Solution {
public:vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {int len = people.size();sort(people.begin(),people.end(),[](vector<int> &p1,vector<int> &p2){if(p1[0] > p2[0])return true;else if(p1[0] == p2[0])return p1[1] < p2[1];return false;});vector<vector<int>> res;res.reserve(len);for(int i = 0;i <len;i++){int pos = people[i][1];if(pos < i){res.insert(res.begin()+pos,people[i]);}else{res.push_back(people[i]);}}return res;}
};

代码三:

用链表来插入。不过寻找插入位置仍然是O(n)的时间复杂度,因为在 C++ 中,std::list 的迭代器是双向迭代器,不支持随机访问(即不能直接使用 + 运算符进行偏移)

class Solution {
public:vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {int len = people.size();sort(people.begin(),people.end(),[](vector<int> &p1,vector<int> &p2){if(p1[0] > p2[0])return true;else if(p1[0] == p2[0])return p1[1] < p2[1];return false;});std::list<vector<int>> listres;for(int i = 0;i <len;i++){if(people[i][1] < i){int pos = people[i][1];listres.insert(std::next(listres.begin(),pos),people[i]);}elselistres.push_back(people[i]);}vector<vector<int>> res(listres.begin(),listres.end());return res;}
};

http://www.yayakq.cn/news/670306/

相关文章:

  • 网站给他人做付刑事责任潍坊 网站企划
  • 有什么网站可以发布个人信息公司市场营销策划方案
  • 网站前台建设需要哪些技术知识平面设计与广告设计
  • wordpress 预订网站快速优化排名排名
  • 企业门户网站建设论文武安市网站建设费用
  • 做网站公司名字应该用图片吗做网站必须要认证吗
  • 做网站需要一些什么东西云南企业
  • 建设手机银行官方网站网站开发属于什么专业
  • win7 iis 添加网站wordpress整合论坛程序
  • j永久网站网站建设介绍大全
  • asp.net网站建设实战 pdf滨海住房和城乡建设局网站
  • 河南科技园网站建设最新互联网企业排名
  • c 网站设计wordpress 页面属性
  • 郑州网站如何制作重庆网站推广人员
  • 做安防在哪个网站做广告呢极简网站设计
  • 网站开发学习视频专教做美食的网站
  • 营销型网站建设式球磨机龙岗网站建设公司信息
  • 济南网站建设专业公司大宅装修
  • 室内设计有哪些网站网站后台登录系统是怎么做的
  • 那些免费网站可以做国外贸易象山企业门户网站建设
  • 网站建设技术架构和语言网站动图怎么做
  • 美食网站开发目的与意义seo工作职位
  • 甘肃交通建设监理公司网站东莞建设工程交易中心门户网站
  • 泉州台商区建设局网站东道设计一个logo多少钱
  • wordpress引入php文件潍坊网站搜索引擎优化
  • 学做网站有用吗外链群发平台
  • 平面设计案例网站优搜云seo
  • 淮安那家公司做网站公司网站备案必须是企业信息么
  • 做视频网站需要什么证书青岛app网站开发
  • 吴江做招聘的网站wordpress 培训行业主题