Open Tcdian opened 3 years ago
/**
* @param {number[]} nums
* @param {number} k
* @return {number}
*/
var numSubarrayProductLessThanK = function(nums, k) {
if (k <= 1) {
return 0;
}
let left = 0;
let right = 0;
let prefix = 1;
let result = 0;
while(left < nums.length) {
while(prefix < k && right < nums.length) {
prefix *= nums[right++];
}
result += right - left;
if (prefix >= k) {
result--;
}
prefix /= nums[left++];
}
return result;
};
function numSubarrayProductLessThanK(nums: number[], k: number): number {
if (k <= 1) {
return 0;
}
let left = 0;
let right = 0;
let prefix = 1;
let result = 0;
while(left < nums.length) {
while(prefix < k && right < nums.length) {
prefix *= nums[right++];
}
result += right - left;
if (prefix >= k) {
result--;
}
prefix /= nums[left++];
}
return result;
};
713. Subarray Product Less Than K
给定一个正整数数组
nums
。找出该数组内乘积小于
k
的连续的子数组的个数。Example
Note
0 < nums.length <= 50000
.0 < nums[i] < 1000
.0 <= k < 10^6
.