zoukankan      html  css  js  c++  java
  • 【leetcode】1343. Number of Sub-arrays of Size K and Average Greater than or Equal to Threshold

    题目如下:

    Given an array of integers arr and two integers k and threshold.

    Return the number of sub-arrays of size k and average greater than or equal to threshold.

    Example 1:

    Input: arr = [2,2,2,2,5,5,5,8], k = 3, threshold = 4
    Output: 3
    Explanation: Sub-arrays [2,5,5],[5,5,5] and [5,5,8] have averages 4, 5 and 6 respectively. All other sub-arrays of size 3 have averages less than 4 (the threshold).
    

    Example 2:

    Input: arr = [1,1,1,1,1], k = 1, threshold = 0
    Output: 5
    

    Example 3:

    Input: arr = [11,13,17,23,29,31,7,5,2,3], k = 3, threshold = 5
    Output: 6
    Explanation: The first 6 sub-arrays of size 3 have averages greater than 5. Note that averages are not integers.
    

    Example 4:

    Input: arr = [7,7,7,7,7,7,7], k = 7, threshold = 7
    Output: 1
    

    Example 5:

    Input: arr = [4,4,4,4], k = 4, threshold = 1
    Output: 1

    Constraints:

    • 1 <= arr.length <= 10^5
    • 1 <= arr[i] <= 10^4
    • 1 <= k <= arr.length
    • 0 <= threshold <= 10^4

    解题思路:滑动窗口问题,把每一个区间的和都算出来吧。

    代码如下:

    class Solution(object):
        def numOfSubarrays(self, arr, k, threshold):
            """
            :type arr: List[int]
            :type k: int
            :type threshold: int
            :rtype: int
            """
            res = 0
            count = 0
            for i in range(len(arr)):
                if i < k - 1 :
                    count += arr[i]
                elif i == k - 1:
                    count += arr[i]
                    if count / k >= threshold:
                        res += 1
                else:
                    count += arr[i]
                    count -= arr[i-k]
                    if count / k >= threshold:
                        res += 1
            return res
  • 相关阅读:
    图解HTTPS
    JQuery 控件
    sql server 中某个字段值合并【转】
    ASP.NET时间函数及其格式转换
    数据库 'tempdb' 的日志已满
    @@ERROR 和 @@ROWCOUNT
    SQL Server中行列转换 Pivot UnPivot 【转】
    Global.asax详解
    SQL Server 2008时提示评估期已过的解决办法
    C# IO读取文件问题:正由另一进程使用
  • 原文地址:https://www.cnblogs.com/seyjs/p/12287791.html
Copyright © 2011-2022 走看看