题目分析:暴力方法时间超时,所以只能遍历一次
class Solution: def numSubarrayProductLessThanK(self, nums, k): # count = 0 # for i in range(len(nums)): # product = 1 # for j in range(i, len(nums)): # if product*nums[j] < k: # count += 1 # product = product*nums[j] # else: # break # return count if k <= 1: return 0 prod = 1 ans = left = 0 for right, val in enumerate(nums): prod *= val while prod >= k: prod /= nums[left] left += 1 ans += right - left + 1 return ans