编程题:二维平面整数点集求最大值
生活随笔
收集整理的這篇文章主要介紹了
编程题:二维平面整数点集求最大值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述:
P為給定的二維平面整數點集。定義 P 中某點x,如果x滿足 P 中任意點都不在 x 的右上方區域內(橫縱坐標都大于x),則稱其為“最大的”。求出所有“最大的”點的集合。(所有點的橫坐標和縱坐標都不重復, 坐標軸范圍在[0, 1e9) 內)
如下圖:實心點為滿足條件的點的集合。請實現代碼找到集合 P 中的所有 ”最大“ 點的集合并輸出。
def resu(datalist):result = []# 外循環:目標點xfor item1 in datalist:if item1[0] == "":continue# 內循環,找是否有點位于目標點x右上方for item2 in datalist:if item2[0] == "": # 遍歷完所有點后,沒有點 在 x 的右上方區域內,x是“最大的”result.append(item1)continueif item2[0]<item1[0]: # 所選點的橫坐標 < 目標點的橫坐標continueif int(item2[0]) > int(item1[0]): # 有點 在 x 的右上方區域內,x不是“最大的”,繼續下一個目標點if int(item2[1]) > int(item1[1]):breakreturn resultnum = 5
# data_list = []
# for i in range(int(num)):
# x1 = input()
# asr = x1.split(" ")
# data_list.append(asr)
data_list = [[1,2],[5,3],[4,6], [7,5], [9,0]]
data_list.append(["", ""])
data_list_1 = resu(data_list)
data_list_1.sort()
for item in data_list_1:string = str(item[0]) + " " + str(item[1])print(string)
總結
以上是生活随笔為你收集整理的编程题:二维平面整数点集求最大值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 编程题:顺时针打印矩阵(不一定是方阵)
- 下一篇: CRF++:一个 CRF 工具包