在Python中查找给定长度的最大子数组的程序
假设我们有一个包含各种整数值和给定长度k的数组。我们必须从给定长度的数组中找到最大的子数组。如果子数组1[i] ≠ subarry2[i]且subarray1[i] > subarry2[i],则子数组1被认为比另一个子数组更大。
因此,如果输入是nums = [5, 3, 7, 9],k = 2,则输出将为[7, 9]。
为了解决这个问题,我们将遵循以下步骤-
- 开始 := nums的大小-k
- max_element := nums[start] < / li>
- max_index :=开始 < / li>
- 当start >= 0时,
- 如果nums[start] > max_element,那么
- max_element := nums[start]
- max_index :=开始
- return nums[from index max_index to max_index + k]
- 如果nums[start] > max_element,那么
- return nums[from index max_index to 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]