C语言
int numSubarrayProductLessThanK(int* nums, int numsSize, int k){
int dp = 0;
int max = 0;
int mul = 1;
int i, j;
for (i = 0; i < numsSize; i++) {
max = 0;
mul = 1;
for (j = i; j >= 0; j--) {
mul *= nums[j];
if(mul >= k) {
break;
}
max++;
}
dp = dp + max;
}
return dp;
}
注意点
- 子问题是当增加一个元素时,所能增加的满足条件的字数组数最大为n,最小为0;