求邊界點 Python

2021-08-25 17:14:07 字數 1289 閱讀 4002

問題描述:

p為給定的二維平面整數點集。定義 p 中某點x,如果x滿足 p 中任意點都不在 x 的右上方區域內(橫縱座標都大於x),則稱其為「最大的」。求出所有「最大的」點的集合。(所有點的橫座標和縱座標都不重複, 座標軸範圍在[0, 1e9) 內)

如下圖:實心點為滿足條件的點的集合。請實現**找到集合 p 中的所有 」最大「 點的集合並輸出。

**實現:

# -*- coding:utf-8 -*-

"""5

(1,2)(5,3)(4,6)(7,5)(9,0)

output:

(4 6)(7 5)(9 0)

思路:由於邊界點的縱座標,從左到右依次下降,所以優先求出最右邊點,然後記錄最大y的座標max_y,

後面的點依次對比,如果y值比max_y還大,說明跟他也是邊界點

"""import sys

def find_points():

nums = int(sys.stdin.readline())

points =

result =

for i in range(0, nums):

read_list = [int(i) for i in sys.stdin.readline().strip().split()]

points.sort() # 排序,元組排序會先按第乙個數排,再按第二個數排

max_x2y = points[nums - 1][1]

for j in range(nums - 2, -1, -1): # 倒過來求

if points[j][1] > max_x2y:

result.insert(0, points[j])

max_x2y = points[j][1]

for i in result:

print(i[0], i[1])

find_points()

結果:

1、牛客網輸入需要匯入sys,利用sys.stdin.strip().readline().split()讀取資料,一行這樣的**,僅僅代表讀取一行,如果需要讀取多行,可以用多行這樣的**,或者用while true迴圈讀取。

2、牛客網結果以print列印的結果為準。

重看邊界點

在多元函式的開始,總會提到點集,點與點集之間的關係 1.內點 u p e 2.外點 u p e 3.邊界點 u p exist p0 u p and p1 u p and p0 e and p1 e 4.聚點 d p0 d and p0 e 圖1如圖1所示,d 其中point p1 表示p1是一點。...

python簡單爬蟲獲取行政邊界點座標

最近剛開始學用python進行簡單爬蟲,關於python簡單爬蟲網易雲課堂上有教程,倆小時學會這裡用到的工具是教程中提到的jupyter notebook 可以看到地圖中多了乙個行政區圖層,我們需要做的是觀察下方的響應,找到圖層對應的鏈結,通過簡單搜尋可以發現在xhr下的某個檔案,它的respons...

使用Adorner顯示WPF控制項的邊界點

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!當我們拖動wpf控制項時,我們為了更清楚地需要顯示控制項,一般我們會在wpf控制項所圍成的矩形區域的四個邊界點上作乙個特殊的記號 比如圓點 如下圖 在winform中,我們一般都是先找到控制項所包圍的矩形區域,然後畫出四個邊界點。那麼,在wpf,如...