Skip to content

Commit 63ea667

Browse files
committed
feat: add solutions to lc problems: No.1890,1891
1 parent 5cfafe4 commit 63ea667

File tree

10 files changed

+318
-4
lines changed

10 files changed

+318
-4
lines changed

solution/1800-1899/1890.The Latest Login in 2020/README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,14 @@ User 14 did not login in 2020, so we do not include them in the result table.
109109
<!-- 这里可写当前语言的特殊实现逻辑 -->
110110

111111
```sql
112-
112+
# Write your MySQL query statement below
113+
SELECT
114+
user_id,
115+
max(time_stamp) AS last_stamp
116+
FROM
117+
Logins
118+
WHERE YEAR(time_stamp) = 2020
119+
GROUP BY user_id;
113120
```
114121

115122
<!-- tabs:end -->

solution/1800-1899/1890.The Latest Login in 2020/README_EN.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,14 @@ User 14 did not login in 2020, so we do not include them in the result table.
103103
### **SQL**
104104

105105
```sql
106-
106+
# Write your MySQL query statement below
107+
SELECT
108+
user_id,
109+
max(time_stamp) AS last_stamp
110+
FROM
111+
Logins
112+
WHERE YEAR(time_stamp) = 2020
113+
GROUP BY user_id;
107114
```
108115

109116
<!-- tabs:end -->
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Write your MySQL query statement below
2+
SELECT
3+
user_id,
4+
max(time_stamp) AS last_stamp
5+
FROM
6+
Logins
7+
WHERE YEAR(time_stamp) = 2020
8+
GROUP BY user_id;

solution/1800-1899/1891.Cutting Ribbons/README.md

Lines changed: 104 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,22 +69,125 @@ Now you have 4 ribbons of length 4.
6969

7070
<!-- 这里可写通用的实现逻辑 -->
7171

72+
“二分法”实现。
73+
7274
<!-- tabs:start -->
7375

7476
### **Python3**
7577

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

7880
```python
79-
81+
class Solution:
82+
def maxLength(self, ribbons: List[int], k: int) -> int:
83+
low, high = 0, 100000
84+
while low < high:
85+
mid = (low + high + 1) >> 1
86+
cnt = 0
87+
for ribbon in ribbons:
88+
cnt += ribbon // mid
89+
if cnt < k:
90+
high = mid - 1
91+
else:
92+
low = mid
93+
return low
8094
```
8195

8296
### **Java**
8397

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

86100
```java
101+
class Solution {
102+
public int maxLength(int[] ribbons, int k) {
103+
int low = 0, high = 100000;
104+
while (low < high) {
105+
int mid = (low + high + 1) >> 1;
106+
int cnt = 0;
107+
for (int ribbon : ribbons) {
108+
cnt += ribbon / mid;
109+
}
110+
if (cnt < k) {
111+
high = mid - 1;
112+
} else {
113+
low = mid;
114+
}
115+
}
116+
return low;
117+
}
118+
}
119+
```
120+
121+
### **JavaScript**
122+
123+
```js
124+
/**
125+
* @param {number[]} ribbons
126+
* @param {number} k
127+
* @return {number}
128+
*/
129+
var maxLength = function(ribbons, k) {
130+
let low = 0;
131+
let high = 100000;
132+
while (low < high) {
133+
const mid = (low + high + 1) >> 1;
134+
let cnt = 0;
135+
for (let ribbon of ribbons) {
136+
cnt += Math.floor(ribbon / mid);
137+
}
138+
if (cnt < k) {
139+
high = mid - 1;
140+
} else {
141+
low = mid;
142+
}
143+
}
144+
return low;
145+
};
146+
```
147+
148+
### **C++**
149+
150+
```cpp
151+
class Solution {
152+
public:
153+
int maxLength(vector<int>& ribbons, int k) {
154+
int low = 0, high = 100000;
155+
while (low < high) {
156+
int mid = (low + high + 1) / 2;
157+
int cnt = 0;
158+
for (auto ribbon : ribbons) {
159+
cnt += ribbon / mid;
160+
}
161+
if (cnt < k) {
162+
high = mid - 1;
163+
} else {
164+
low = mid;
165+
}
166+
}
167+
return low;
168+
}
169+
};
170+
```
87171
172+
### **Go**
173+
174+
```go
175+
func maxLength(ribbons []int, k int) int {
176+
low, high := 0, 100000
177+
for low < high {
178+
mid := (low + high + 1) >> 1
179+
cnt := 0
180+
for _, ribbon := range ribbons {
181+
cnt += ribbon / mid
182+
}
183+
if cnt < k {
184+
high = mid - 1
185+
} else {
186+
low = mid
187+
}
188+
}
189+
return low
190+
}
88191
```
89192

90193
### **...**

solution/1800-1899/1891.Cutting Ribbons/README_EN.md

Lines changed: 102 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,114 @@ Now you have 4 ribbons of length 4.
7070
### **Python3**
7171

7272
```python
73-
73+
class Solution:
74+
def maxLength(self, ribbons: List[int], k: int) -> int:
75+
low, high = 0, 100000
76+
while low < high:
77+
mid = (low + high + 1) >> 1
78+
cnt = 0
79+
for ribbon in ribbons:
80+
cnt += ribbon // mid
81+
if cnt < k:
82+
high = mid - 1
83+
else:
84+
low = mid
85+
return low
7486
```
7587

7688
### **Java**
7789

7890
```java
91+
class Solution {
92+
public int maxLength(int[] ribbons, int k) {
93+
int low = 0, high = 100000;
94+
while (low < high) {
95+
int mid = (low + high + 1) >> 1;
96+
int cnt = 0;
97+
for (int ribbon : ribbons) {
98+
cnt += ribbon / mid;
99+
}
100+
if (cnt < k) {
101+
high = mid - 1;
102+
} else {
103+
low = mid;
104+
}
105+
}
106+
return low;
107+
}
108+
}
109+
```
110+
111+
### **C++**
112+
113+
```cpp
114+
class Solution {
115+
public:
116+
int maxLength(vector<int>& ribbons, int k) {
117+
int low = 0, high = 100000;
118+
while (low < high) {
119+
int mid = (low + high + 1) / 2;
120+
int cnt = 0;
121+
for (auto ribbon : ribbons) {
122+
cnt += ribbon / mid;
123+
}
124+
if (cnt < k) {
125+
high = mid - 1;
126+
} else {
127+
low = mid;
128+
}
129+
}
130+
return low;
131+
}
132+
};
133+
```
134+
135+
### **JavaScript**
136+
137+
```js
138+
/**
139+
* @param {number[]} ribbons
140+
* @param {number} k
141+
* @return {number}
142+
*/
143+
var maxLength = function(ribbons, k) {
144+
let low = 0;
145+
let high = 100000;
146+
while (low < high) {
147+
const mid = (low + high + 1) >> 1;
148+
let cnt = 0;
149+
for (let ribbon of ribbons) {
150+
cnt += Math.floor(ribbon / mid);
151+
}
152+
if (cnt < k) {
153+
high = mid - 1;
154+
} else {
155+
low = mid;
156+
}
157+
}
158+
return low;
159+
};
160+
```
79161

162+
### **Go**
163+
164+
```go
165+
func maxLength(ribbons []int, k int) int {
166+
low, high := 0, 100000
167+
for low < high {
168+
mid := (low + high + 1) >> 1
169+
cnt := 0
170+
for _, ribbon := range ribbons {
171+
cnt += ribbon / mid
172+
}
173+
if cnt < k {
174+
high = mid - 1
175+
} else {
176+
low = mid
177+
}
178+
}
179+
return low
180+
}
80181
```
81182

82183
### **...**
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
class Solution {
2+
public:
3+
int maxLength(vector<int>& ribbons, int k) {
4+
int low = 0, high = 100000;
5+
while (low < high) {
6+
int mid = (low + high + 1) / 2;
7+
int cnt = 0;
8+
for (auto ribbon : ribbons) {
9+
cnt += ribbon / mid;
10+
}
11+
if (cnt < k) {
12+
high = mid - 1;
13+
} else {
14+
low = mid;
15+
}
16+
}
17+
return low;
18+
}
19+
};
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
func maxLength(ribbons []int, k int) int {
2+
low, high := 0, 100000
3+
for low < high {
4+
mid := (low + high + 1) >> 1
5+
cnt := 0
6+
for _, ribbon := range ribbons {
7+
cnt += ribbon / mid
8+
}
9+
if cnt < k {
10+
high = mid - 1
11+
} else {
12+
low = mid
13+
}
14+
}
15+
return low
16+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class Solution {
2+
public int maxLength(int[] ribbons, int k) {
3+
int low = 0, high = 100000;
4+
while (low < high) {
5+
int mid = (low + high + 1) >> 1;
6+
int cnt = 0;
7+
for (int ribbon : ribbons) {
8+
cnt += ribbon / mid;
9+
}
10+
if (cnt < k) {
11+
high = mid - 1;
12+
} else {
13+
low = mid;
14+
}
15+
}
16+
return low;
17+
}
18+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/**
2+
* @param {number[]} ribbons
3+
* @param {number} k
4+
* @return {number}
5+
*/
6+
var maxLength = function(ribbons, k) {
7+
let low = 0;
8+
let high = 100000;
9+
while (low < high) {
10+
const mid = (low + high + 1) >> 1;
11+
let cnt = 0;
12+
for (let ribbon of ribbons) {
13+
cnt += Math.floor(ribbon / mid);
14+
}
15+
if (cnt < k) {
16+
high = mid - 1;
17+
} else {
18+
low = mid;
19+
}
20+
}
21+
return low;
22+
};
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class Solution:
2+
def maxLength(self, ribbons: List[int], k: int) -> int:
3+
low, high = 0, 100000
4+
while low < high:
5+
mid = (low + high + 1) >> 1
6+
cnt = 0
7+
for ribbon in ribbons:
8+
cnt += ribbon // mid
9+
if cnt < k:
10+
high = mid - 1
11+
else:
12+
low = mid
13+
return low

0 commit comments

Comments
 (0)