2022-5-5 每日一题-leetcode

题目链接:https://leetcode-cn.com/problems/subarray-product-less-than-k/

个人题解:滑动窗口+双指针

  1. \(i\)\(j\) 来维护滑动窗口的两端。
  2. \(j\) 去遍历,同时维护 \(sum\) ,然后遍历 \(i\) ,去更新滑动窗口的长度。
  3. \(res\) 来维护答案,\(res += (j-i+1)\)

代码:

class Solution {
public:
    int numSubarrayProductLessThanK(vector<int>& nums, int k) {
        int sum=1,i=0,j=0,res=0;
        for(j=0;j<nums.size();j++){
            sum*=nums[j];
            while(i<=j && sum>=k){ 
                sum/=nums[i];
                i++;
            }
            res+=(j-(i-1));
        }
        return res;
    }
};

结果:
image

posted @ 2022-05-05 10:55  黑VS白-清墨  阅读(27)  评论(0)    收藏  举报