# 713. Subarray Product Less Than K https://leetcode.com/problems/subarray-product-less-than-k/ ###### Medium ##### Description > Your are given an array of positive integers nums. > > Count and print the number of (contiguous) subarrays where the product of all the elements in the subarray is less than k. > ##### Example > Input: nums = [10, 5, 2, 6], k = 100 > Output: 8 > Explanation: The 8 subarrays that have product less than 100 are: [10], [5], [2], [6], [10, 5], [5, 2], [2, 6], [5, 2, 6]. > Note that [10, 5, 2] is not included as the product of 100 is not strictly less than k. ##### Solution ```python= class Solution: def numSubarrayProductLessThanK(self, nums: List[int], k: int) -> int: if k<= 1: return 0 count = 0 start = 0 end = 0 sum = 1 while end < len(nums): v = nums[end] sum *= v while sum >= k: sum /= nums[start] start += 1 count += end - start + 1 end += 1 return count ``` ##### Tips * Two Pointer * Sliding Window ##### Note 以原題目[10,5,2,6]解釋 當[5,2,6]成立時,包含的[5,2,6],[2,6],[6]皆成立 **end-start+1**就是所有集合的數量