713. 乘积小于 K 的子数组(leetcode)

https://leetcode.cn/problems/subarray-product-less-than-k/description/

同向双指针,没什么难点

class Solution {
    int res;
    public int numSubarrayProductLessThanK(int[] nums, int k) {
        if(k<=1)return 0;
        int mSum=1;
        // i右指针,子数组的右端点
        for(int i=0,j=0;i<nums.length;i++)
        {
            mSum*=nums[i];
            while(mSum >= k) // 当不满足要求时,缩小范围
            {
                mSum/=nums[j];
                j++;
            }
            res += i-j+1;
        }
        return res;

    }
}

 

posted @ 2024-10-06 00:24  风乐  阅读(6)  评论(0)    收藏  举报