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