1.代码随想录Day62.代码随想录Day7|哈希表part02 3.代码随想录Day8|字符串4.代码随想录Day9| 5.代码随想录Day10|栈与队列6.代码随想录Day11|栈和队列7.代码随想录12|栈和队列8.代码随想录Day14|二叉树9.代码随想录Day15|二叉树10.代码随想录Day15|二叉树III11.代码随想录算法训练营14期 Day112.代码随想录训练营day2| leetcode977, 209,5913.代码随想录day16| 二叉树(四)14.代码随想录Day17|二叉树(五)15.代码随想录Day19|二叉树(六)16.代码随想录|二叉树(最后一章)17.代码随想录|二叉树总结18.代码随想录Day23|回溯算法19.代码随想录Day24|回溯算法+JAVA大作战20.代码随想录|回溯算法(终回)21.代码随想录Day30|贪心122.代码随想录Day32|贪心II
23.代码随想录|贪心III
24.代码随想录|贪心(终章)25.代码随想录|动态规划26.代码随想录|动态规划-01背包问题27.代码随想录|完全背包28.代码随想录|打家劫舍问题29.代码随想录|各种买卖股票问题30.代码随想录|动态规划 - 子序列系列31.代码随想录|动态规划32.代码随想录|动态规划-编辑距离33.代码随想录|动态规划(终章)34.代码随想录|单调栈860.柠檬水找零
406.根据身高重建队列
452. 用最少数量的箭引爆气球
860.柠檬水找零
class Solution: def lemonadeChange(self, bills: List[int]) -> bool: n1 = 0 #number of 5 n2 = 0 #number of 10 for i in bills: if i == 5: n1 += 1 elif i == 10: if n1 == 0: return False n1 -= 1 n2 += 1 else: if n2 > 0 and n1 > 0: n2 -= 1 n1 -= 1 else: if n1 >= 3: n1 -= 3 else: return False return True
406.根据身高重建队列
遇到两个维度权衡的时候,一定要先确定一个维度,再确定另一个维度。
如果两个维度一起考虑一定会顾此失彼。
考虑到以高度为衡量标准,所以我们先将高度从大到小排序
后面按照所需要的前面有多少个比他大或者等于的要求插入排序
class Solution: def reconstructQueue(self, people: List[List[int]]) -> List[List[int]]: people.sort(key = lambda x : (-x[0], x[1])) que = [] for p in people: que.insert(p[1],p) return que
452. 用最少数量的箭引爆气球
遇到范围的问题,一定要思考会不会缩小范围
使用min来解决
class Solution: def findMinArrowShots(self, points: List[List[int]]) -> int: points.sort(key = lambda x:[x[0],-x[1]]) ans = 1 maxs = points[0][1] for j in points: if j[0] > maxs: maxs = j[1] ans += 1 else: maxs = min(j[1], maxs) return ans
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?