R2-贪心篇.
求最小,那就尽可能地假设更多的气球y值不相同咯。
不对,气球除了y值我们随便摆,所以找尽可能多重叠的,就作为同一只箭。
class Solution:
def findMinArrowShots(self, points: List[List[int]]) -> int:
#贪心策略:按右端点从小到大排序,尽量往右端射箭,如果在当前区间,就不用重复射箭
points.sort(key=lambda x:x[1])
cur=points[0][1]
ret=1
for a,b in points:
#如果下一个左端大于本次右端,就需要多射一只箭
if a>cur:
ret+=1
cur=b
return ret
ps:
排序sort语法:
points.sort(key=lambda x:x[0/1/2/---])