求有多少连续子数组的积<k?
滑动窗口,计算到r时候
public int numSubarrayProductLessThanK(int[] nums, int k) {
int res =0 ;
int l = 0;
int r = 0;
int ji = 1;
for (; r < nums.length; r++) {
ji *= nums[r];
while (l <= r) {
if (ji >= k) {
ji /= nums[l];
l++;
} else {
res += r - l + 1;
break;
}
}
}
return res;
}
,算出以r为右边界子数组积<k的个数,累加到答案里