程序查找平均数大于或等于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

    回到顶部