Python程式:查詢給定長度的最大子陣列


假設我們有一個包含各種整數值的陣列和一個給定的長度k。我們需要從陣列中找到給定長度的最大子陣列。如果子陣列1[i] ≠ 子陣列2[i] 且子陣列1[i] > 子陣列2[i],則稱子陣列1大於子陣列2。

因此,如果輸入類似於nums = [5, 3, 7, 9],k = 2,則輸出將為[7, 9]。

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

  • start := nums的大小 - k
  • max_element := nums[start]
  • max_index := start
  • 當start >= 0時,執行以下操作:
    • 如果nums[start] > max_element為非零,則
      • max_element := nums[start]
      • max_index := start
    • 返回nums[從索引max_index到max_index + k]
  • 返回nums[從索引max_index到max_index + k]

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

示例

def solve(nums, k):
   start = len(nums) - k
   max_element = nums[start]
   max_index = start

   while start >= 0:
      if nums[start] > max_element:
         max_element = nums[start]
         max_index = start

      start -= 1

   return nums[max_index:max_index + k]

print(solve([5, 3, 7, 9], 2))

輸入

[5, 3, 7, 9], 2

輸出

[7, 9]

更新於: 2021年10月4日

553 次檢視

開啟你的 職業生涯

完成課程獲得認證

開始學習
廣告