Python 中檢查陣列是否“漂亮”
假設我們有一個包含唯一元素的陣列 nums。我們必須檢查這些條件是否滿足。
- 元素範圍為 1 到 n。
- 陣列不能按升序排序。
因此,如果輸入類似於 nums = [2,6,1,5,3,4],則輸出為 True。
為了解決這個問題,我們將遵循以下步驟:
- n := nums 的大小
- total := nums[0]
- is_sorted := True
- 對於範圍 1 到 n - 1 中的 i,執行:
- 如果 nums[i] 與 nums[i - 1] 相同,則:
- 返回 False
- 如果 nums[i] < nums[i - 1],則:
- is_sorted := False
- total := total + nums[i]
- 如果 nums[i] 與 nums[i - 1] 相同,則:
- 如果 is_sorted 為真,則:
- 返回 False
- 如果 total 等於前 n 個數字的總和,則返回 true,否則返回 false
讓我們看看下面的實現以更好地理解:
示例程式碼
def solve(nums): n = len(nums) total = nums[0] is_sorted = True for i in range(1,n): if nums[i] == nums[i - 1]: return False if nums[i] < nums[i - 1]: is_sorted = False total += nums[i] if is_sorted: return False return total == (n * (n + 1) // 2) nums = [2,6,1,5,3,4] print(solve(nums))
輸入
[2,6,1,5,3,4]
輸出
True
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP