Python程式:查詢可構成最大正方形的矩形數量


假設我們有一個名為rect的陣列,其中rect[i]有兩個元素[len_i, wid_i],其中len_i和wid_i分別表示第i個矩形的長度和寬度。現在,如果k <= lenn_i且k <= wid_i,則可以切割第i個矩形以形成邊長為k的正方形。例如,如果我們有一個矩形[4,6],那麼我們可以切割它以獲得邊長最多為4的正方形。現在考慮一個名為maxLen的引數,它是我們可以從任何給定矩形中獲得的最大正方形的邊長。我們必須找到可以構成邊長為maxLen的正方形的矩形數量。

因此,如果輸入類似於rect = [[6,9],[4,10],[6,13],[17,6]],則輸出將為3,因為我們可以獲得邊長為[6, 4, 6, 6]的最大正方形,因此有三個矩形是最大的。

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

  • m := 一個新的列表

  • 對於rect中的每個r,執行:

    • 在m的末尾插入r的最小值

  • 計算m中存在m的最大值的數量並返回

示例(Python)

讓我們看看以下實現以獲得更好的理解:

 線上演示

def solve(rect):
   m = []
   for r in rect:
      m.append(min(r))

   return m.count(max(m))

rect = [[6,9],[4,10],[6,13],[17,6]]
print(solve(rect))

輸入

[[6,9],[4,10],[6,13],[17,6]]

輸出

3

更新於: 2021年5月18日

215 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告