程序查找平均数大于或等于python中目标的K长度子列表的数量
假设我们有一个列表num,以及两个附加值k和target,我们必须找到大小为k且平均值≥target的子列表的数量。
因此,如果输入像nums = [1,10,5,6,7] k = 3 target = 6,则输出将为2,因为子列表[1,10,7]的平均值为6, [10,5,6]的平均值为7。
为了解决这个问题,我们将按照以下步骤操作:
目标:=目标* k
sum:= 0,ans:= 0
对于每个索引i和以数字为单位的n,请执行
如果总和> =目标,则
回答:=回答+1
sum:= sum-nums [i-k]
如果i> = k,则
和:= sum + n
如果i> =(k-1),则
返回ans
让我们看下面的实现以更好地理解:
范例程式码
class Solution:def solve(self, nums, k, target):
target *= k
sum = 0
ans = 0
for i, n in enumerate(nums):
if i >= k:
sum -= nums[i - k]
sum += n
if i >= (k - 1):
if sum >= target:
ans += 1
return ans
ob = Solution()nums = [1, 10, 5, 6, 7]
k = 3
target = 6
print(ob.solve(nums, k, target))
输入值
[1, 10, 5, 6, 7], 3, 6
输出结果
2
以上是 程序查找平均数大于或等于python中目标的K长度子列表的数量 的全部内容, 来源链接: utcz.com/z/330807.html