P为给定的二维平面整数点集。定义 P 中某点x,如果x满足 P 中任意点都不在 x 的右上方区域内(横纵坐标都大于x),则称其为“最大的”。求出所有“最大的”点的集合。(所有点的横坐标和纵坐标都不重复, 坐标轴范围在[0, 1e9) 内)
如下图:实心点为满足条件的点的集合。请实现代码找到集合 P 中的所有 ”最大“ 点的集合并输出。
#coding=utf-8
import sys
def tell(num,nums):
for i in nums:
if num[0]<i[0] and num[1]<i[1]:
return 0
return 1
if __name__ == "__main__":
# 读取第一行的n
n = int(input())
ans = 0
star = []
res=[]
for i in range(n):
# 读取每一行
line = list(map(int, sys.stdin.readline().strip().split()))
star.append([line[0], line[1]])
flag=0
for s in star:
flag = tell(s,star)
if flag:
res.append(s)
print(sorted(res,key=lambda x: x[0]))
正在思索怎么进一步解决问题ing。。。