1798:你能构造出连续值的最大数目

This commit is contained in:
轩辕龙儿 2023-02-04 16:20:40 +08:00
parent 72cdf2cf58
commit 8317a80677
2 changed files with 132 additions and 0 deletions

View File

@ -0,0 +1,81 @@
////给你一个长度为 n 的整数数组 coins 它代表你拥有的 n 个硬币 i 个硬币的值为 coins[i] 如果你从这些硬币中选出一部分硬币它们的
//和为 x 那么称你可以 构造 x
//
// 请返回从 0 开始包括 0 你最多能 构造 出多少个连续整数
//
// 你可能有多个相同值的硬币
//
//
//
// 示例 1
//
//
//输入coins = [1,3]
//输出2
//解释你可以得到以下这些值
//- 0什么都不取 []
//- 1 [1]
// 0 开始你可以构造出 2 个连续整数
//
// 示例 2
//
//
//输入coins = [1,1,1,4]
//输出8
//解释你可以得到以下这些值
//- 0什么都不取 []
//- 1 [1]
//- 2 [1,1]
//- 3 [1,1,1]
//- 4 [4]
//- 5 [4,1]
//- 6 [4,1,1]
//- 7 [4,1,1,1]
// 0 开始你可以构造出 8 个连续整数
//
// 示例 3
//
//
//输入nums = [1,4,10,3,1]
//输出20
//
//
//
// 提示
//
//
// coins.length == n
// 1 <= n <= 4 * 10
// 1 <= coins[i] <= 4 * 10
//
//
// Related Topics 贪心 数组 👍 122 👎 0
package leetcode.editor.cn;
import java.util.*;
// 1798:你能构造出连续值的最大数目
public class MaximumNumberOfConsecutiveValuesYouCanMake {
public static void main(String[] args) {
Solution solution = new MaximumNumberOfConsecutiveValuesYouCanMake().new Solution();
}
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
public int getMaximumConsecutive(int[] coins) {
Arrays.sort(coins);
int num = 0;
for (int coin : coins) {
if (coin > num + 1) {
return num + 1;
}
num += coin;
}
return num + 1;
}
}
//leetcode submit region end(Prohibit modification and deletion)
}

View File

@ -0,0 +1,51 @@
<p>给你一个长度为 <code>n</code>&nbsp;的整数数组&nbsp;<code>coins</code>&nbsp;,它代表你拥有的&nbsp;<code>n</code>&nbsp;个硬币。第&nbsp;<code>i</code>&nbsp;个硬币的值为&nbsp;<code>coins[i]</code>&nbsp;。如果你从这些硬币中选出一部分硬币,它们的和为&nbsp;<code>x</code>&nbsp;,那么称,你可以&nbsp;<strong>构造</strong>&nbsp;&nbsp;<code>x</code>&nbsp;</p>
<p>请返回从 <code>0</code>&nbsp;开始(<strong>包括</strong>&nbsp;<code>0</code>&nbsp;),你最多能&nbsp;<strong>构造</strong>&nbsp;出多少个连续整数。</p>
<p>你可能有多个相同值的硬币。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre>
<b>输入:</b>coins = [1,3]
<b>输出:</b>2
<strong>解释:</strong>你可以得到以下这些值:
- 0什么都不取 []
- 1取 [1]
从 0 开始,你可以构造出 2 个连续整数。</pre>
<p><strong>示例 2</strong></p>
<pre>
<b>输入:</b>coins = [1,1,1,4]
<b>输出:</b>8
<strong>解释:</strong>你可以得到以下这些值:
- 0什么都不取 []
- 1取 [1]
- 2取 [1,1]
- 3取 [1,1,1]
- 4取 [4]
- 5取 [4,1]
- 6取 [4,1,1]
- 7取 [4,1,1,1]
从 0 开始,你可以构造出 8 个连续整数。</pre>
<p><strong>示例 3</strong></p>
<pre>
<b>输入:</b>nums = [1,4,10,3,1]
<b>输出:</b>20</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>coins.length == n</code></li>
<li><code>1 &lt;= n &lt;= 4 * 10<sup>4</sup></code></li>
<li><code>1 &lt;= coins[i] &lt;= 4 * 10<sup>4</sup></code></li>
</ul>
<div><div>Related Topics</div><div><li>贪心</li><li>数组</li></div></div><br><div><li>👍 122</li><li>👎 0</li></div>