day35 贪心算法 part04● 860.柠檬水找零 ● 406.根据身高重建队列 ● 452. 用最少数量的箭引爆气球

一遍过,就是有10的时候尽量把10用掉,20是用不掉的,如果发现不够找回了,就return

 false。 

class Solution {
public:bool lemonadeChange(vector<int>& bills) {unordered_map<int,int> mp;for(int i=0;i<bills.size();i++){if(bills[i]==5){mp[5]++;}else if(bills[i]==10){mp[10]++;if(mp[5]){mp[5]--;}else return false;}else{mp[20]++;if(mp[10]){mp[10]--;if(mp[5]){mp[5]--;}else return false;}else{if(mp[5]>=3) mp[5]-=3;else return false;}}}return true;}
};

 

处理一边完,再处理另外一边。

使用vector是非常费时的,C++中vector(可以理解是一个动态数组,底层是普通数组实现的)如果插入元素大于预先普通数组大小,vector底部会有一个扩容的操作,即申请两倍于原先普通数组的大小,然后把数据拷贝到另一个更大的数组上。

list底层是链表实现,插入效率比vector高的多

 看了题解。按照身高h来排序呢,身高一定是从大到小排(身高相同的话则k小的站前面),让高个子在前面。

cmp需要加static,表示类的函数。

class Solution {
public:
static bool cmp(const vector<int>&a,const vector<int>& b){if(a[0]==b[0]) return a[1]<b[1];return a[0]>b[0];}vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {sort(people.begin(),people.end(),cmp);list<vector<int>> q;for(int i=0;i<people.size();i++){int pos=people[i][1];list<vector<int>> ::iterator it=q.begin();while(pos--){it++;}q.insert(it,people[i]);}return vector<vector<int>>(q.begin(),q.end());}
}; 

c++的static使用:全局变量不但在本文件中可以被访问,在其他文件中同样可以访问。写代码时很容易在不同文件定义相同名字的全局变量,这就会引发冲突。
而静态全局变量只能在声明它的整个文件可见,限制了该变量的访问范围。
同样的,静态全局函数,在全局函数前加上static,表示只能在声明文件中被访问。 

本来想着按气球终止位置排序后,每个右边界射箭,把左边界在这个右边界的气球都射掉。

不知道怎么遍历符合条件的气球,射掉后怎么删掉气球。【未】

如果把气球排序之后,从前到后遍历气球,被射过的气球仅仅跳过就行了,没有必要让气球数组remove气球,只要记录一下箭的数量就可以了。

为了让气球尽可能的重叠,需要对数组进行排序

那么按照气球起始位置排序,还是按照气球终止位置排序呢?

其实都可以!只不过对应的遍历顺序不同,我就按照气球的起始位置排序了。

class Solution {public:
static bool cmp(const vector<int>& a, const vector<int>& b){return a[0]<b[0];
}int findMinArrowShots(vector<vector<int>>& points) {if(points.size()==0)  return 0;sort(points.begin(),points.end(),cmp);int res=1;for(int i=1;i<points.size();i++){if(points[i][0]>points[i-1][1]){  //为什么这里不判断后面的左边界是否小于此时的右边界呢,原因是如果i左边界大于,那么由于左边界升序排序,那么后面左边界只会更大。res++;}else{points[i][1]=min(points[i-1][1],points[i][1]);}}return res;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/571866.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用正则表达式,在idea上搜索匹配替换

工作中需要改字 正则表达式记录下 block-?[1-9]\d*"

spring-boot-devtools配置和原理

一、前言 昨天&#xff0c;一个同事Eclipse在启动SpringBoot项目时一直不停地加载&#xff0c;后来发现是因为spring-boot-devtools造成的问题&#xff0c;因为我们把日志输出的目录设置在当前项目里&#xff08;~/mnt/logs/&#xff0c;这样设置是因为mac电脑没有根目录权限&…

I/O模型之A、B、C、D、E、F、G去火锅店吃火锅

目录 BIO Blocking I/O 即同步阻塞I/O NIO Non-Blocking I/O 即同步非阻塞I/O I/O多路复用 AIO Asynchronous I/O 异步I/O 总结 I/O&#xff1a;Input和Output BIO Blocking I/O 即同步阻塞I/O 应用程序发起read调用后&#xff0c;一直会阻塞&#xff0c;直到系统内核将…

【c++模板】泛型编程(你真的懂模版特化、分离编译和非类型参数吗)

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 今日主菜&#xff1a;模板 主厨&#xff1a;邪王真眼 主厨的主页&#xff1a;Chef‘s blog 所属专栏&#xff1a;c大冒险 总有光环在陨落&#xff0c;总有新星在…

【2024系统架构设计】案例分析- 3 数据库

目录 一 基础知识 二 真题 一 基础知识 1 ORM ORM(Object—Relationl Mapping

【OS探秘】【虚拟化】【软件开发】在Windows 11上安装mac OS虚拟机

一、所需原料 Windows 11主机、Oracle VM VirtualBox虚拟化平台、mac OS 11镜像文件 二、安装步骤 1、 在VBox管理器中&#xff0c;点击“新建”&#xff0c;进入向导模式&#xff0c;指定各个字段&#xff1a;

46秒AI生成真人视频爆火,遭在线打假「换口型、声音」

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 发布在https://it.weoknow.com 更多资源欢迎关注 是炒作还是真正的 AI 视频能力进化&#xff1f; AI 生成视频已经发展到这个程…

03---java面试八股文——mybatis-------8题

21、MyBatis实现一对一查询 MyBatis 有两种不同的方式加载关联&#xff1a; 嵌套 Select 查询&#xff1a;通过执行另外一个 SQL 映射语句来加载期望的复杂类型。嵌套结果映射&#xff1a;使用嵌套的结果映射来处理连接结果的重复子集。查看mybatis的关联 MyBatis是一种流行的J…

【Java程序设计】【C00344】基于Springboot的船舶维保管理系统(有论文)

基于Springboot的船舶维保管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 项目获取 &#x1f345;文末点击卡片获取源码&#x1f345; 开发环境 运行环境&#xff1a;推荐jdk1.8&#xff1b; 开发工具&#xff1a;eclipse以及i…

腾讯VS网易:一场不见终局的游戏未来之战

国内游戏霸主腾讯最近赚足了眼球。 总体上看&#xff0c;腾讯手握“游戏社交”两大王牌&#xff0c;最近发布的财报十分亮眼&#xff0c;其2023年总营收和净利润分别同比增长10%和36%&#xff0c;展现了互联网巨头的强劲活力。 然而巨头亦有焦虑&#xff0c;增值服务营收同比…

ChatGPT5.0最新爆料

前言 Chat GPT 5 发布日期预测开始飞速发展&#xff0c;期待这将是 OpenAI 迄今为止最先进的大型语言模型。OpenAI 是否正在开发 GPT 5&#xff1f;如果是这样&#xff0c;GPT 5 什么时候出来&#xff1f;OpenAI 首席执行官山姆奥特曼 &#xff08;Sam Altman&#xff09; 将再…

【Java多线程】1——多线程知识回顾

1 多线程知识回顾 ⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记仓库&#x1f449;https://github.com/A-BigTree/tree-learning-notes 个人主页&#x1f449;https://www.abigtree.top ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点个star…