程序在Python中查找大小为k的子列表的最大值
假设我们有一个列表num和另一个值k,我们必须找到大小为k的每个子列表的最大值。
因此,如果输入像nums = [12,7,3,9,10,9] k = 3,那么输出将是[12,9,10,10]
为了解决这个问题,我们将遵循以下步骤-
如果k> nums的大小,则
返回一个空白列表
res:=一个新列表
temp:= nums [0]
温度:= npoint:= 0
对于i在0到k − 1的范围内
temp:= nums [i]
点:=我
如果nums [i]> temp,则
在res的末尾插入temp
对于范围在k到nums的i
temp:= nums [i]
点:=我
点:= i − k + 1
对于范围i − k + 1至i的j,做
temp:= nums [point]
点:= j
如果nums [j]> nums [point],则
temp:= nums [point]
如果nums [i] <temp和(i-point)<k,则
否则,当nums [i] <temp并且(i-点)> = k时,则
除此以外,
在res的末尾插入temp
返回资源
让我们看下面的实现以更好地理解-
示例
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中查找大小为k的子列表的最大值 的全部内容, 来源链接: utcz.com/z/355837.html