classSolution(object):defreconstructQueue(self, people):"""
:type people: List[List[int]]
:rtype: List[List[int]]
"""
people.sort(key=lambda x:(-x[0], x[1]))#h从大到小,k从小到大
que =[]for p in people:
que.insert(p[1],p)return que
452. 用最少数量的箭引爆气球
题目链接:
points要先sort!
classSolution(object):deffindMinArrowShots(self, points):"""
:type points: List[List[int]]
:rtype: int
"""
points.sort(key=lambda x: x[0])
intervals =[points[0]]for point in points:if point[0]>intervals[-1][1]:#point在所有区间右端
intervals.append(point)elif point[1]<intervals[0][0]:#point在所有区间左端
intervals.insert(0, point)else:for i inrange(len(intervals)):if point[0]>intervals[i][1]:continueif point[1]<intervals[i][0]:
intervals.insert(i, point)else:if point[0]>intervals[i][0]:
intervals[i][0]=point[0]if point[1]<intervals[i][1]:
intervals[i][1]=point[1]breakreturnlen(intervals)
因为已经sort了 所以无需判断左端点
classSolution(object):deffindMinArrowShots(self, points):"""
:type points: List[List[int]]
:rtype: int
"""iflen(points)==0:return0
result=1
points.sort(key=lambda x: x[0])for i inrange(len(points)):if points[i][0]>points[i-1][1]:
result+=1else:
points[i][1]=min(points[i-1][1], points[i][1])return result