leetcode-713 乘积小于k的数组
leetcode-713 乘积小于k的数组
参考:负雪明烛
题目描述:
给定一个正整数数组 nums。找出该数组内乘积小于 k 的连续的子数组的个数。
注:这题和209题比较类似,但是在while判断的时候需要考虑一下
class Solution(object):
def numSubarrayProductLessThanK(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: int
"""
res = 0
prod = 1
l,r = 0, 0
N = len(nums)
while r < N:
prod *= nums[r]
# 需要注意这里的条件判断,特别是prod>=k 和res的操作
# 必须让其满足条件之后,才能进行相应的计数操作
while l<=r and prod >= k:
prod /= nums[l]
l += 1
res += r-l + 1
r += 1
return res