有时,在竞争性编程中,我们可能会遇到几何领域的问题,并且使用 xy 坐标系。元组列表可用于存储相同的内容。与此同时,可能存在一个问题,即我们需要 x 轴的最大值与 y 轴相似的点,即水平线上的最远点。让我们讨论一些讨论这个问题的方法。
方法:使用列表理解 + max() 这是一种通用的蛮力方法,用于获取公共 y 轴的最大 x 轴点,使用列表理解作为 1 行。 max()用于查找 x 轴元素的最大值。
# Python3 code to demonstrate working of# Farthest point on horizontal lines in 2D plane# Using list comprehension + max()from collections import defaultdict
# initializing list
test_list =[(1,6),(4,6),(2,6),(6,8),(1,8),(2,9)]# printing original listprint("The original list is : "+str(test_list))# Using list comprehension + max()# Farthest point on horizontal lines in 2D plane
temp = defaultdict(list)for key, val in test_list:
temp[val].append(key)
res =[(key, val)for key, val in test_list ifmax(temp[val])== key]# Printing resultprint("The list after filtering just maximum points on lines : "+str(res))
输出 :
The original listis:[(1,6),(4,6),(2,6),(6,8),(1,8),(2,9)]
The list after filtering just maximum points on lines :[(4,6),(6,8),(2,9)]