邯郸哪里有做网站的李,桂阳城乡建设局网站,wordpress文章链接怎么改,酷站百分百【代码随想录训练营】【Day 37】【贪心-4】| Leetcode 840, 406, 452
需强化知识点
python list sort的高阶用法#xff0c;两个key#xff0c;另一种逆序写法python list insert的用法
题目
860. 柠檬水找零
思路#xff1a;注意 20 块找零#xff0c;可以找3张5块升…【代码随想录训练营】【Day 37】【贪心-4】| Leetcode 840, 406, 452
需强化知识点
python list sort的高阶用法两个key另一种逆序写法python list insert的用法
题目
860. 柠檬水找零
思路注意 20 块找零可以找3张5块升级版可以直接用变量记录次数fiveten
class Solution:def lemonadeChange(self, bills: List[int]) - bool:money_dict {5:0, 10:0, 20:0}for i in range(len(bills)):money_dict[bills[i]] 1if bills[i] 5:continueelif bills[i] 10:money_dict[5] - 1if money_dict[5] 0:return Falseelse:if money_dict[10] 0 and money_dict[5] 0:money_dict[10] - 1money_dict[5] - 1elif money_dict[5] 2:money_dict[5] - 3else:return False return True406. 根据身高重建队列
题目含义原先的people是打乱顺序现在要重新排序得到queue思路首先对people进行排序先按照身高降序排序身高相同时根据 ki 进行升序排列这里key的传参很妙然后构建新的队列插入的思想以kj为依据进行插入实现同样身高的ki小的排在前面insert索引值插入的元素
class Solution:def minSubArrayLen(self, target: int, nums: List[int]) - int:n len(nums)result 2 ** 31 - 1sum_, i 0, 0for j in range(n):sum_ nums[j]while sum_ target:result min(result, j - i 1)sum_ - nums[i]i 1if result 2**31 -1:return 0else:return result452. 用最少数量的箭引爆气球
思路重叠的气球都一起射 - 记录和更新重叠区间。point根据初始位置进行排序如果新位置不在重叠区间内则增加次数更新重叠区间
class Solution:def findMinArrowShots(self, points: List[List[int]]) - int:points.sort(key lambda x: x[0])times 1sl, sr points[0][0], points[0][1]for i in range(1, len(points)):if points[i][0] sr:times 1sl, sr points[i][0], points[i][1]sl, sr max(sl, points[i][0]), min(sr, points[i][1])return times