Python程式:查詢距離不連續的最小對數和
假設我們有一個名為 的數字列表。現在讓我們考慮任何一對索引 (i, j),其中 i < j 且 j - i > 1。然後找到最小的對數和。
因此,如果輸入類似於 nums = [3, 4, 2, 2, 4],則輸出將為 5,我們可以選擇值 3 和 2,因此總和為 5。我們不能選擇 2 和 2,因為它們是相鄰的,並且違反了 j - i > 1 的約束。
為了解決這個問題,我們將遵循以下步驟:
- n := nums 的大小
- min_seen := nums[0]
- ans := inf
- 對於 i 從 2 到 n - 1 的範圍,執行以下操作:
- ans := ans 和 (min_seen + nums[i]) 的最小值
- min_seen := min_seen 和 nums[i - 1] 的最小值
- 返回 ans
示例
讓我們看看以下實現以獲得更好的理解:
def solve(nums):
n = len(nums)
min_seen = nums[0]
ans = float("inf")
for i in range(2, n):
ans = min(ans, min_seen + nums[i])
min_seen = min(min_seen, nums[i - 1])
return ans
nums = [3, 4, 2, 2, 4]
print(solve(nums))輸入
[3, 4, 2, 2, 4]
輸出
5
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP