713. 乘积小于K的子数组
给定一个正整数数组 nums。
找出该数组内乘积小于 k 的连续的子数组的个数。
解题思路: 双指针。
class Solution {
public:
int numSubarrayProductLessThanK(vector<int>& nums, int k) {
if (k <= 1) return 0;
int n = nums.size(), i = 0, j = 0;
int prod = 1, res = 0;
while (i < n && j < n) {
prod *= nums[j];
while (prod >= k) prod /= nums[i++];
res += (j - i + 1);
++j;
}
return res;
}
};