在Python中找到大小为k的子列表的最大值的程序

在Python中找到大小为k的子列表的最大值的程序

假设我们有一个列表num和另一个值k,我们必须找到大小为k的每个子列表的最大值。

因此,如果输入如下nums = [12、7、3、9、10、9] k = 3,则输出将为[12、9、10、10]

要解决此问题,我们将遵循以下步骤-

  • 如果k> nums的大小,那么
    • 返回空列表
  • res:=新列表

  • temp:= nums [0]

  • temp:= npoint:=0

  • for i in range 0 to k − 1, do

    • 如果nums [i]> temp,则
      • temp:= nums [i]

      • point:= i

  • 将temp插入res的末尾

  • for i in range k to size of nums, do

    • 如果nums [i]
      • temp:= nums [point]
    • 否则当nums [i] = k时,那么
      • point:=i−k + 1

      • for j in range i-k + 1 to i, do

      • 如果nums [j]> nums [point],则

        • point:= j
      • temp:= nums [point]

    • 否则,

      • temp:= nums [i]

      • point:= i

    • 将temp插入res的末尾

  • 返回res

让我们看一下以下实现,以获得更好的了解-

更多Python相关文章,请阅读:Python 教程

示例

class Solution:
    def solve(self, nums, k):
        if k>len(nums):
            return []
        res = []
        temp = nums [0]
        point = 0
        for i in range(k):
            if nums [i]> temp:
               temp = nums [i]
                    point = i
        res.append(temp)
        for i in range(k, len(nums)):
            if nums[i] < temp and (i - point) < k:
                temp = nums[point]
            elif nums[i] < temp and (i - point) >= k:
                point = i - k + 1
                for j in range(i - k + 1, i + 1):
                    if nums[j] > nums[point]:
                        point = j
                temp = nums[point]
            else:
                temp = nums[i]
                point = i
            res.append(temp)
        return res
ob = Solution()
nums = [12, 7, 3, 9, 10, 9]
k = 3
print(ob.solve(nums, k))

输入

[12、7、3、9、10、9],3

输出

[12、9、10、10]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程