在python中找出给定长度的最大子数组的程序
假设我们有一个包含各种整数值和给定长度k的数组。我们必须从给定长度的数组中找出最大的子数组。如果subarray1[i]≠subarry2[i]并且subarray1[i]>subarry2[i],则称一个子数组大于另一个子数组。
因此,如果输入类似于nums=[5,3,7,9],k=2,那么输出将是[7,9]。
为了解决这个问题,我们将按照以下步骤操作-
start:=nums的大小-k
max_element:=nums[开始]
max_index:=开始
当开始>=0时,做
max_element:=nums[开始]
max_index:=开始
如果nums[start]>max_element非零,则
返回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]