在Python中查找给定长度的最大子数组的程序

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程