使用 Python 查詢最大遞增子陣列和的程式


假設我們有一個名為 nums 的正數值陣列,我們需要找到 nums 中最大可能的遞增子陣列和。當對於所有 i(其中 l <= i < r),nums_i < nums_i+1 時,我們可以說子陣列 [nums_l, nums_l+1, ..., nums_r-1, nums_r] 是遞增的。

因此,如果輸入類似於 nums = [15,25,35,5,15,55],則輸出將為 75,因為 [5,15,55] 是和最大的遞增子陣列。

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

  • total:= nums[0]

  • max_total:= nums[0]

  • 對於 i 從 1 到 nums 的大小,執行以下操作:

    • 如果 nums[i] > nums[i-1],則

      • total := total + nums[i]

    • 否則,

      • total:= nums[i]

    • 如果 total > max_total,則

      • max_total:= total

  • 返回 max_total

讓我們看看下面的實現以更好地理解:

示例

 線上演示

def solve(nums):
   total=nums[0]
   max_total=nums[0]
   for i in range(1,len(nums)):
      if nums[i] > nums[i-1]:
         total+=nums[i]
      else:
         total=nums[i]
      if total > max_total:
         max_total=total
   return max_total
nums = [15,25,35,5,15,55]
print(solve(nums))

輸入

[15,25,35,5,15,55]

輸出

75

更新於: 2021年5月29日

527 次瀏覽

開啟你的 職業生涯

完成課程獲得認證

開始學習
廣告