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

密云区住房城乡建设委官方网站今日新闻十大头条内容

密云区住房城乡建设委官方网站,今日新闻十大头条内容,云建站步骤,网站开发工作难吗代码随想录算法训练营第35天|860.柠檬水找零,406.根据身高重建队列,452. 用最少数量的箭引爆气球860.柠檬水找零406. 根据身高重建队列452. 用最少数量的箭引爆气球860.柠檬水找零 题目链接:860.柠檬水找零,难度:简单…

代码随想录算法训练营第35天|860.柠檬水找零,406.根据身高重建队列,452. 用最少数量的箭引爆气球

  • 860.柠檬水找零
  • 406. 根据身高重建队列
  • 452. 用最少数量的箭引爆气球

860.柠檬水找零

题目链接:860.柠檬水找零,难度:简单
【实现代码】

class Solution {
public:bool lemonadeChange(vector<int>& bills) {int change[2] = {0};for (int i = 0; i < bills.size(); i++) {if (bills[i] == 5) {change[0]++;} else if (bills[i] == 10) {change[0]--;change[1]++;} else if (bills[i] == 20) {change[0]--;if (change[1] == 0) {change[0] -= 2;} else {change[1]--;}                }// cout << change[0] << "  " << change[1] << endl;if (change[0] < 0 || change[1] < 0) {return false;}}return true;}
};

【解题思路】

需要注意的是,5块和10块是分开计数的,而且当十块不够的时候可以使用5块的。

406. 根据身高重建队列

题目链接:406. 根据身高重建队列,难度:中等
【实现代码】

class Solution {
public:static bool cmp(const vector<int>& people1, const vector<int>& people2) {if (people1[0] == people2[0]) {return people1[1] < people2[1];} else {return people1[0] > people2[0];}}vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {sort(people.begin(), people.end(), cmp);// for (int i = 0; i < people.size(); i++) {//     cout << people[i][0] << " " << people[i][1] << endl;// }list<vector<int>> queue;for (int i = 0; i < people.size(); i++) {int position = people[i][1];list<vector<int>>::iterator it = queue.begin();while (position--) {it++;}queue.insert(it, people[i]);}return vector<vector<int>>(queue.begin(), queue.end());}
};

【解题思路】

首先是对原数组进行排列,按照身高降序和k值升序的顺序排列。
接着是插入到新的数组里,应该按照对应k值进行操作。
因为vector的底层结构是数组,插入和删除操作都是O(n^2),所以使用链表进行存储新的队列。

452. 用最少数量的箭引爆气球

题目链接:452. 用最少数量的箭引爆气球,难度:中等
【实现代码】

class Solution {
public:static bool cmp(vector<int>& point1, vector<int>& point2) {return point1[0] < point2[0];}int findMinArrowShots(vector<vector<int>>& points) {sort(points.begin(), points.end(), cmp);int result = 1;for (int i = 1; i < points.size(); i++) {            if (points[i][0] > points[i - 1][1]) {result++;} else {points[i][1] = min(points[i][1], points[i - 1][1]);}}return result;}
};

【解题思路】

这一题主要是找重叠的坐标范围,首先也是对坐标进行排序,按照第一个x进行升序排列。
之后找重叠的范围,每次要找到相邻两个坐标的最大重叠坐标x;如果下一个的第一个x大于前一个坐标的第二个x,则需要重新射一箭。

http://www.hengruixuexiao.com/news/41833.html

相关文章:

  • wordpress 网站关键词创新营销方式有哪些
  • 空间设计大师电脑系统优化工具
  • 访问不了服务器的网站山东东营网络seo
  • 网站建设与app开发提交百度一下
  • 在哪里找人做公司网站360网站推广怎么做
  • 响应式视频网站市场营销策划公司
  • 互联网营销的优势seo优化培训多少钱
  • 网页建站系统推广方案框架
  • 网站建设中页面设计尚硅谷培训机构官网
  • 武义县网站制作网络营销的步骤
  • 新手建站广告联盟赚钱百度搜索收录
  • 小企业网站建设收费百度收录入口提交
  • 网站模板下载网络营销推广的方式
  • 门户网站自查整改情况报告广州网站关键词排名
  • 广东设计公司排名前十强seo排名教程
  • 下载正品官方网站广西网站建设
  • 免费做产品画册的网站域名网
  • 江苏首天建设集团网站百度资源
  • 连锁 加盟 网站模板seo有名气的优化公司
  • 外贸独立网站应用商店关键词优化
  • 最好的网站开发公司网站建站要多少钱
  • 做网站一般都选哪家5118网站如何使用免费版
  • 网站开发环境及工具qq关键词排名优化
  • 旧宫做网站的公司北京百度网站排名优化
  • 网站一直维护意味着什么百度指数平台
  • 民治制作网站百度推广哪家做的最好
  • 中国做视频网站有哪些内容100种宣传方式
  • wordpress选项下拉视频seo优化教程
  • 洪梅镇网站建设营销案例100例小故事
  • 个人网站建设及实现毕业论文google付费推广