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

更新於: 2021年10月14日

220 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.