713. 乘积小于 K 的子数组
题目
给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。
代码
class Solution:
def numSubarrayProductLessThanK(self, nums: List[int], k: int) -> int:
ans, product, i = 0, 1, 0
for j, v in enumerate(nums):
product *= v
while i <= j and product >= k:
product //= nums[i]
i += 1
ans += j - i + 1
return ans
复杂度分析
时间复杂度: O(n)
空间复杂度: O(1)