2022-5-5 每日一题-leetcode
题目链接:https://leetcode-cn.com/problems/subarray-product-less-than-k/
个人题解:滑动窗口+双指针
- 用 \(i\) 和 \(j\) 来维护滑动窗口的两端。
- 用 \(j\) 去遍历,同时维护 \(sum\) ,然后遍历 \(i\) ,去更新滑动窗口的长度。
- 用 \(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;
}
};
结果:


浙公网安备 33010602011771号