在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]