日日攻克LeetCode:计算机编程每日挑战实践
从今天开始,在LeetCode上进行每日一题的训练,并期待来自坛友的监督与交流。今日的题目如下:713. 乘积小于 K 的子数组
给定一个整数数组 `nums` 和一个整数 `k`,请计算乘积小于 `k` 的连续子数组的个数。
示例 1:
[*]输入:nums = , k = 100
[*]输出:8
[*]解释:8 个乘积小于 100 的子数组分别为:、、,、、、、、。 需要注意的是 并不是乘积小于 100 的子数组。
示例 2:
[*]输入:nums = , k = 0
[*]输出:0
下面是代码实现:
```go
func numSubarrayProductLessThanK(nums []int, k int) int {
front := 0
back := 0
sum := 1
result := 0
// 初始化变量
p := 1
j := 0
// 外层循环处理所有子数组
for front = k {
// 减少当前窗口长度
p /= nums
j++
}
// 更新结果
res += i - j + 1
}
return res
}
```
通过这个改进版本的代码,我们可以快速地解决这个问题。希望这个回答对你有所帮助!
页:
[1]