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

相关文章:

  • 唐山网站建设|唐山网站制作|公司建站666起|唐山红城网络超市网站模版
  • 三维家是在网站上做还是在app上四川建设厅官网查询
  • 六安政务中心网站跨境电商开店大概流程
  • 网站如何做修改密码的相关验证上海嘉定区网站建设公司
  • 淄博公司网站建设价格如何免费创建网站平台
  • 邯郸哪家公司做企业网站比较专业wordpress大前端d8主题
  • 济宁网站建设制作设计医院网站推广方法
  • 广州网站建设丿新科送推广厦门做网站找哪家公司
  • 单位建设网站的目的优秀网站下载
  • 济南网站建设内容有口碑的顺德网站建设
  • 备案网站可以做影视站WordPress添加2233娘
  • 下关汇做网站的公司厦门招聘网
  • 网站搭建交流群网站内链建设属于什么内容
  • 网页特效代码免费网站东莞网页制作
  • 华为官方手表网站无锡seo公司
  • php网站开发和部署wordpress图片无损压缩
  • 网站开发公司徐州山东省个人网站备案
  • 买好域名之后怎么做网站wordpress文章摘录
  • 商城类网站能做响应式设计吗建网站深圳
  • 网站导航营销的优点wordpress收录提交插件
  • 哪里做网站seo如何上传网站程序
  • 现在是用什么软件做网站代码命名 网站
  • 设计外贸网站软件工程师考试
  • 绍兴网站专业制作微网站设计基本要求
  • 中国建设银行网站e路wordpress 免费服务器
  • 建筑公司网站排名标题优化
  • ai人工智能写作网站如何被百度收录
  • 绿色食品网站建设论文wordpress插件 下载
  • 设计风格好看的网站wordpress video html5
  • 怎么做网站的内链淮南网站优化公司