860. 柠檬水找零

solution

不要漏掉的一种情况是:如果收到了20,可以找10+5,或者5+5+5

class Solution:def lemonadeChange(self, bills: List[int]) -> bool:mymoney=dict()mymoney[5]=0mymoney[10]=0mymoney[20]=0for i in bills:mymoney[i]+=1needreturn=i-5# 需要找零的币种只有:5 或者 15(10+5 or 5+5+5)if needreturn==5:if mymoney[5]>0:mymoney[5]-=1else:return Falseelif needreturn==15:if mymoney[10]>0 and mymoney[5]>0:mymoney[10]-=1mymoney[5]-=1elif mymoney[5]>=3:mymoney[5]-=3else:return Falsefor e,i in enumerate(mymoney):if i>=0:continueelse:return Falsereturn True

406. 根据身高重建队列

遇到两个维度权衡的时候,一定要先确定一个维度,再确定另一个维度。如果两个维度一起考虑一定会顾此失彼。
链接: lambda表达式在sort中的使用
链接: 如何使用python insert插入数据

solution

抄的代码,注意看我写的注释

class Solution:def reconstructQueue(self, people: List[List[int]]) -> List[List[int]]:# 先按照h维度的身高顺序从高到低排序。确定第一个维度# lambda返回的是一个元组:当-x[0](维度h)相同时,再根据x[1](维度k)从小到大排序# lambda默认是看参数x 从小到大,前面加上-就是从大到小people.sort(key=lambda x: (-x[0], x[1]))que = []# 根据每个元素的第二个维度k,贪心算法,进行插入# 因为从前往后插入,越往后是身高小的,插在前面不会影响已经插好的元素的k属性# people已经排序过了:同一高度时k值小的排前面。for p in people:que.insert(p[1], p)return que

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

solution

我直接看了答案再写的 好聪明啊卡尔

class Solution:def findMinArrowShots(self, points: List[List[int]]) -> int:res=1 # initial 1points.sort(key=lambda x:x[0])print(points)for i in range(1,len(points)):if points[i][0]>points[i-1][1]:res+=1else:points[i][1]=min(points[i][1],points[i-1][1])return res
  1. 排序后从第二个范围开始,如果它的区间头比前一个尾巴小,即与前一个重合,那么就将改区间尾巴位置为相对小的尾巴,表示已经被射击了
  2. 如果没有重叠,则需要一只新的剑了

Suzy想吃烤蛋挞了Day35 | 贪心算法进行时:860. 柠檬水找零,406. 根据身高重建队列,452. 用最少数量的箭引爆气球相关推荐

  1. 代码随想录35——贪心:860柠檬水找零、406根据身高重建队列、452用最少数量的箭引爆气球

    文章目录 1.860柠檬水找零 1.1.题目 1.2.解答 2.406根据身高重建队列 2.1.题目 2.2.解答 3.452用最少数量的箭引爆气球 3.1.题目 3.2.解答 1.860柠檬水找零 ...

  2. 452. 用最少数量的箭引爆气球(贪心算法+思路+详解)07

    一:题目 在二维空间中有许多球形的气球.对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标.由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了.开始坐标总是小于结束 ...

  3. leetcode 452. 用最少数量的箭引爆气球(贪心算法)

    在二维空间中有许多球形的气球.对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标.由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了.开始坐标总是小于结束坐标. 一 ...

  4. 力扣记录:贪心算法3较难(1)区间问题——55 跳跃游戏,45 跳跃游戏II,452 用最少数量的箭引爆气球,435 无重叠区间,763 划分字母区间,56 合并区间

    本次题目 55 跳跃游戏 45 跳跃游戏II 452 用最少数量的箭引爆气球 435 无重叠区间 763 划分字母区间 56 合并区间 55 跳跃游戏 局部最优:不管每次跳多少步,取最大跳跃步数,若覆 ...

  5. c语言贪心算法合并箭,贪心算法:用最少数量的箭引爆气球

    ❝ 通知:一些录友表示经常看不到每天上午的文章,现在公众号已经不按照发送时间推荐了,而是根据一些规则乱序推送,所以可能关注了「代码随想录」也一直看不到文章,建议把「代码随想录」设置星标哈,设置星标之后 ...

  6. LeetCode每日一题--860. 柠檬水找零(贪心)

    题目:跳转至 860. 柠檬水找零 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元 ...

  7. 【LeetCode】两道贪心算法题目-455分发饼干,860柠檬水找零

    文章目录 第455题:分发饼干 第860题:柠檬水找零 第455题:分发饼干 题目描述 假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干.对每个孩子 i ,都有一个 ...

  8. LeetCode[860] 柠檬水找零 (贪心)

    PS: 本题目摘自 LeetCode 860 原题 柠檬水找零,一道贪心算法问题 题目描述 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次 ...

  9. 贪心——区间选点问题(用最少数量的箭引爆气球 Leetcode 452)

    题目选自Leetcode 452 简单的一道贪心题,主要运用排序和贪心的思想~ 我们先看看题目: 在二维空间中有许多球形的气球.对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标.由于它是 ...

最新文章

  1. SimpleDateFormat 详解
  2. 金陵科技学院c语言测试,金陵科技学院C语言实验册.doc
  3. Softmax回归——logistic回归模型在多分类问题上的推广
  4. stm32 usart 单线半双工串口 DMA发送 最后一个字节发不出来问题
  5. python文件无法关闭_Python脚本无法正常终止
  6. Heroku和Java –从新手到初学者,第2部分
  7. c语言数据类型_C语言基础数据类型
  8. hsqldb快速入门
  9. Java 能抵挡住 JavaScript 的进攻吗?
  10. 使用Python代码处理Excel
  11. java exception信息_可能通过Java Exceptions暴露敏感信息?
  12. 用户故事与敏捷方法—故事不是什么
  13. 整数转罗马数字 + 逆向(Python)
  14. 微信小程序排名规则大揭秘
  15. (转) Java线程池实现原理及其在美团业务中的实践
  16. 台式win10系统你要来自Trustedinstaller的权限才能对此文件进行更改?
  17. Java基础学习过程
  18. Ubuntu14.04 安装 TP_LINK驱动 TL-WDN5200H 1.0无线网卡
  19. 再厚的马赛克都能被扒干净?这款去码神器火了
  20. android 低电量卡,Android11 增加低电量通知

热门文章

  1. 解决《使命召唤:战区2.0》遇到的Windows10版本号不匹配问题,一并解决Windows10更新失败:UEFI固件受限问题
  2. Apollo学习笔记(12)Lattice Planner规划算法
  3. dns缓存、cnd缓存、浏览器缓存
  4. lucene geohash 在外卖场景中,商家不规则多边形配送范围技术应用
  5. 网络安全系列-二十六: IP地理定位数据库及使用示例
  6. 【读书笔记】《中庸(国学大书院)》
  7. access DateAdd函数
  8. iphone手机上三个麦克风作用
  9. 计算机组成原理_实验三:主存储器原理实验
  10. 服务器网维虚拟盘无法启动,网维大师网吧虚拟磁盘客户机不出盘案例