Skip to content

Commit 8ba96a2

Browse files
committed
feat: add solutions to leetcode problem: No.1798. Maximum Number of Consecutive Values You Can Make
1 parent 9e913a4 commit 8ba96a2

File tree

4 files changed

+75
-6
lines changed

4 files changed

+75
-6
lines changed

solution/1700-1799/1798.Maximum Number of Consecutive Values You Can Make/README.md

+33-3
Original file line numberDiff line numberDiff line change
@@ -56,27 +56,57 @@
5656
<li><code>1 <= coins[i] <= 4 * 10<sup>4</sup></code></li>
5757
</ul>
5858

59-
6059
## 解法
6160

6261
<!-- 这里可写通用的实现逻辑 -->
6362

63+
先对 `coins` 数组进行排序。
64+
65+
假设前 i 个数所有构造的的连续整数的个数为 res,初始化为 1。
66+
67+
遍历排序后的 `coins` 数组:
68+
69+
-`coins[i] > res`,说明接下来无法组成 `res + 1` 个连续整数,跳出循环。
70+
71+
> 对于 `1, 3`,若遍历到 3,此时前面的连续整数个数为 2,即连续整数为:`0, 1`。此时 3 大于 2,无法构成连续整数 `0, 1, 2`,所以最大连续整数个数为 2。
72+
73+
-`coins[i] <= res`,说明有 `coins[i]` 个数也能构成连续整数。
74+
6475
<!-- tabs:start -->
6576

6677
### **Python3**
6778

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

7081
```python
71-
82+
class Solution:
83+
def getMaximumConsecutive(self, coins: List[int]) -> int:
84+
res = 1
85+
for coin in sorted(coins):
86+
if coin > res:
87+
break
88+
res += coin
89+
return res
7290
```
7391

7492
### **Java**
7593

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

7896
```java
79-
97+
class Solution {
98+
public int getMaximumConsecutive(int[] coins) {
99+
int res = 1;
100+
Arrays.sort(coins);
101+
for (int coin : coins) {
102+
if (coin > res) {
103+
break;
104+
}
105+
res += coin;
106+
}
107+
return res;
108+
}
109+
}
80110
```
81111

82112
### **...**

solution/1700-1799/1798.Maximum Number of Consecutive Values You Can Make/README_EN.md

+21-3
Original file line numberDiff line numberDiff line change
@@ -52,21 +52,39 @@ You can make 8 consecutive integer values starting from 0.</pre>
5252
<li><code>1 &lt;= coins[i] &lt;= 4 * 10<sup>4</sup></code></li>
5353
</ul>
5454

55-
5655
## Solutions
5756

5857
<!-- tabs:start -->
5958

6059
### **Python3**
6160

6261
```python
63-
62+
class Solution:
63+
def getMaximumConsecutive(self, coins: List[int]) -> int:
64+
res = 1
65+
for coin in sorted(coins):
66+
if coin > res:
67+
break
68+
res += coin
69+
return res
6470
```
6571

6672
### **Java**
6773

6874
```java
69-
75+
class Solution {
76+
public int getMaximumConsecutive(int[] coins) {
77+
int res = 1;
78+
Arrays.sort(coins);
79+
for (int coin : coins) {
80+
if (coin > res) {
81+
break;
82+
}
83+
res += coin;
84+
}
85+
return res;
86+
}
87+
}
7088
```
7189

7290
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class Solution {
2+
public int getMaximumConsecutive(int[] coins) {
3+
int res = 1;
4+
Arrays.sort(coins);
5+
for (int coin : coins) {
6+
if (coin > res) {
7+
break;
8+
}
9+
res += coin;
10+
}
11+
return res;
12+
}
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
class Solution:
2+
def getMaximumConsecutive(self, coins: List[int]) -> int:
3+
res = 1
4+
for coin in sorted(coins):
5+
if coin > res:
6+
break
7+
res += coin
8+
return res

0 commit comments

Comments
 (0)