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[start] > max_element為非零,則
- 返回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]
廣告