Python程式:找出兩點之間最寬且無其他點存在的垂直區域


假設我們得到n個點,表示為(x, y)。垂直區域是指沿y軸無限延伸的區域。我們需要找到兩點之間的垂直區域,該區域內沒有其他點,並且是最寬的。

例如,如果輸入是 pts = [[10,9],[11,11],[9,6],[11,9]],則輸出為1。

紅色和藍色區域是最優的,並且它們內部沒有點。

為了解決這個問題,我們將遵循以下步驟:

  • 對列表pts進行排序

  • 對於範圍從1到pts大小的i,執行:

    • 返回(pts[i, 0] - pts[i - 1, 0]) 的最大值

示例

讓我們看下面的實現來更好地理解

def solve(pts):
   pts.sort()
   return max(pts[i][0] - pts[i - 1][0] for i in range(1, len(pts)))
print(solve([[10,9],[11,11],[9,6],[11,9]]))

輸入

[[10,9],[11,11],[9,6],[11,9]]

輸出

1

更新於:2021年10月6日

121 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告