Skip to content

Commit 464efb4

Browse files
authoredDec 13, 2021
feat: add solutions to lc/lcof2 problems (#632)
lc No.0713 & lcof2 No.009.Subarray Product Less Than K
1 parent 4649ab3 commit 464efb4

File tree

5 files changed

+117
-0
lines changed

5 files changed

+117
-0
lines changed
 

‎lcof2/剑指 Offer II 009. 乘积小于 K 的子数组/README.md

+25
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,31 @@ func numSubarrayProductLessThanK(nums []int, k int) int {
111111
}
112112
```
113113

114+
### **C++**
115+
116+
```cpp
117+
class Solution {
118+
public:
119+
int numSubarrayProductLessThanK(vector<int>& nums, int k) {
120+
int left = 0, right;
121+
long mul = 1;
122+
int count = 0;
123+
124+
for (right = 0; right < nums.size(); right++) {
125+
mul *= nums[right];
126+
127+
while(left <= right && mul >= k) {
128+
mul /= nums[left++];
129+
}
130+
131+
count += right >= left? right - left + 1: 0;
132+
}
133+
134+
return count;
135+
}
136+
};
137+
```
138+
114139
### **...**
115140

116141
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
class Solution {
2+
public:
3+
int numSubarrayProductLessThanK(vector<int>& nums, int k) {
4+
int left = 0, right;
5+
long mul = 1;
6+
int count = 0;
7+
8+
for (right = 0; right < nums.size(); right++) {
9+
mul *= nums[right];
10+
11+
while(left <= right && mul >= k) {
12+
mul /= nums[left++];
13+
}
14+
15+
count += right >= left? right - left + 1: 0;
16+
}
17+
18+
return count;
19+
}
20+
};

‎solution/0700-0799/0713.Subarray Product Less Than K/README.md

+26
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,32 @@
3434

3535
<!-- tabs:start -->
3636

37+
### **C++**
38+
39+
```cpp
40+
class Solution {
41+
public:
42+
int numSubarrayProductLessThanK(vector<int>& nums, int k) {
43+
int left = 0, right;
44+
long mul = 1;
45+
int count = 0;
46+
47+
for (right = 0; right < nums.size(); right++) {
48+
mul *= nums[right];
49+
50+
while(left <= right && mul >= k) {
51+
mul /= nums[left++];
52+
}
53+
54+
count += right >= left? right - left + 1: 0;
55+
}
56+
57+
return count;
58+
}
59+
};
60+
```
61+
62+
3763
### **Python3**
3864

3965
<!-- 这里可写当前语言的特殊实现逻辑 -->

‎solution/0700-0799/0713.Subarray Product Less Than K/README_EN.md

+26
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,32 @@ Note that [10, 5, 2] is not included as the product of 100 is not strictly less
4242

4343
<!-- tabs:start -->
4444

45+
### **C++**
46+
47+
```cpp
48+
class Solution {
49+
public:
50+
int numSubarrayProductLessThanK(vector<int>& nums, int k) {
51+
int left = 0, right;
52+
long mul = 1;
53+
int count = 0;
54+
55+
for (right = 0; right < nums.size(); right++) {
56+
mul *= nums[right];
57+
58+
while(left <= right && mul >= k) {
59+
mul /= nums[left++];
60+
}
61+
62+
count += right >= left? right - left + 1: 0;
63+
}
64+
65+
return count;
66+
}
67+
};
68+
```
69+
70+
4571
### **Python3**
4672

4773
```python
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
class Solution {
2+
public:
3+
int numSubarrayProductLessThanK(vector<int>& nums, int k) {
4+
int left = 0, right;
5+
long mul = 1;
6+
int count = 0;
7+
8+
for (right = 0; right < nums.size(); right++) {
9+
mul *= nums[right];
10+
11+
while(left <= right && mul >= k) {
12+
mul /= nums[left++];
13+
}
14+
15+
count += right >= left? right - left + 1: 0;
16+
}
17+
18+
return count;
19+
}
20+
};

0 commit comments

Comments
 (0)