程序查找平均数大于或等于python中目标的K长度子列表的数量
假设我们有一个列表num,以及两个附加值k和target,我们必须找到大小为k且平均值≥target的子列表的数量。
因此,如果输入像nums=[1,10,5,6,7]k=3target=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