牛客网真题-72-最大点集

最大点集

http://www.nowcoder.com/questionTerminal/089dbc5ec7ac468589ce143d43248949

有同学用优先级队列/最大堆做,其实不用那么麻烦。
将点按照x坐标从大到小排序并遍历,那么实际上就可以无视X坐标,只关心Y坐标就行。
换句话说:只需要知道之前遍历的点的最大Y值是多少即可

n=int(input())
points=[ [int(x) for x in input().split()]     for i in range(n)]
points.sort(key=lambda x:-x[0])
ans=[]
top=points[0][1]
for p in points:
    if top>p[1]:
        continue
    top=p[1] 
    ans.append(p)
#ans.sort(key=lambda x:x[0])
for i in range(len(ans)):
    p=ans[len(ans)-1-i]
    print(p[0],p[1])
全部评论

相关推荐

我即大橘:耐泡王
点赞 评论 收藏
分享
HNU_fsq:建议直接出国,这简历太6了。自愧不如
点赞 评论 收藏
分享
2 收藏 评论
分享
牛客网
牛客企业服务