檢查在 Python 中是否可以按照非遞增的寬度順序重新排列矩形
假設我們有一組用長度和寬度表示的矩形。我們可以將任何矩形旋轉 90 度,旋轉後寬度將變成長度,反之亦然。我們必須檢查是否可以按照非遞增的寬度順序對矩形進行排序。
因此,如果輸入類似於 rects = [[4, 5], [5, 7], [4, 6]],則輸出為 True,因為寬度為 [5,7,6],如果我們旋轉後兩個矩形,則寬度將為 [5,5,4],這是非遞增的。
為了解決這個問題,我們將遵循以下步驟:
- m := 99999
- 對於 i 從 0 到 rect 的大小,執行:
- 如果第 i 個矩形的長度和寬度中的最大值 <= m,則:
- m := 第 i 個矩形的長度和寬度中的最大值
- 否則,如果第 i 個矩形的長度和寬度中的最小值 <= m
- m := 第 i 個矩形的長度和寬度中的最小值
- 否則:
- 返回 False
- 如果第 i 個矩形的長度和寬度中的最大值 <= m,則:
- 返回 True
示例
讓我們來看下面的實現,以便更好地理解:
def solve(rect): m = 99999 for i in range(len(rect)): if max(rect[i][0], rect[i][1]) <= m: m = max(rect[i][0], rect[i][1]) elif min(rect[i][0], rect[i][1]) <= m: m = min(rect[i][0], rect[i][1]) else: return False return True rects = [[4, 5], [5, 7], [4, 6]] print(solve(rects))
輸入
[[4, 5], [5, 7], [4, 6]]
輸出
True
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP