zoukankan      html  css  js  c++  java
  • 713. Subarray Product Less Than K

    Your are given an array of positive integers nums.

    Count and print the number of (contiguous) subarrays where the product of all the elements in the subarray is less than k.

    Example 1:

    Input: nums = [10, 5, 2, 6], k = 100
    Output: 8
    Explanation: The 8 subarrays that have product less than 100 are: [10], [5], [2], [6], [10, 5], [5, 2], [2, 6], [5, 2, 6].
    Note that [10, 5, 2] is not included as the product of 100 is not strictly less than k.
    

    Note:

    • 0 < nums.length <= 50000.
    • 0 < nums[i] < 1000.
    • 0 <= k < 10^6.

    sliding window, time = O(n), space = O(1)

    class Solution {
        public int numSubarrayProductLessThanK(int[] nums, int k) {
            if(k <= 1) {
                return 0;
            }
            int res = 0, product = 1;
            int fast = 0, slow = 0;
            for(fast = 0; fast < nums.length; fast++) {
                product *= nums[fast];
                while(product >= k) {
                    product /= nums[slow++];
                }
                res += fast - slow + 1;
            }
            return res;
        }
    }
  • 相关阅读:
    爬虫项目数据解析方式
    数据分析
    爬虫项目代理操作和线程池爬取
    Python网络爬虫
    Django多表操作
    网络编程
    python中什么是元类
    Python面向对象中super用法与MRO机制
    mysql之pymysql
    mysql之索引原理
  • 原文地址:https://www.cnblogs.com/fatttcat/p/13746012.html
Copyright © 2011-2022 走看看