【LeetCode】713. 乘积小于K的子数组

class Solution {
public:
    int numSubarrayProductLessThanK(vector<int>& nums, int k) {
        if(k<2)
            return 0;
        int n = nums.size();
        int i=0,j=0;
        int product=1,ans=0;
        while(j<n)
        {
            product*=nums[j];
            while(product>=k&&i<j)
            {
                product/=nums[i];
                ++i;
            }
            
            ans+=j-i+1;  //每次扩展后会增加窗口元素个数个子数组
            ++j;
        }
        return ans;
    }
};

滑动窗口模板题

上一篇:【LeetCode】剑指 II 017. 含有所有字符的最短字符串


下一篇:leetcode[1748]唯一元素的和 python3实现(一次遍历,两个集合)