【数组】713. 乘积小于K的子数组

题目:

 

 

解答:

 

 

 1 class Solution {
 2 public:
 3     int numSubarrayProductLessThanK(vector<int>& nums, int k) 
 4     {
 5         if (k <= 1) 
 6         {
 7             return 0;
 8         }
 9 
10         int prod = 1;
11         int ans = 0;
12         int left = 0;
13         for (int right = 0; right < nums.size(); right++) 
14         {
15             prod *= nums[right];
16             while (prod >= k) 
17             {
18                 prod /= nums[left++];
19             }
20             ans += right - left + 1;
21         }
22         return ans;
23 
24     }
25 };

 

posted @ 2020-05-05 17:26  梦醒潇湘  阅读(172)  评论(0)    收藏  举报