1798. 你能构造出连续值的最大数目
给你一个长度为 n
的整数数组 coins
,它代表你拥有的 n
个硬币。第 i
个硬币的值为 coins[i]
。如果你从这些硬币中选出一部分硬币,它们的和为 x
,那么称,你可以 构造 出 x
。
请返回从 0
开始(包括 0
),你最多能 构造 出多少个连续整数。
你可能有多个相同值的硬币。
示例 1:
输入:coins = [1,3] |
示例 2:
输入:coins = [1,1,1,4] |
示例 3:
输入:nums = [1,4,10,3,1] |
提示:
coins.length == n
1 <= n <= 4 * 104
1 <= coins[i] <= 4 * 104
C++
// 对数组进行排序,如果前面已经构造出最大连续值为 x,遍历数组,若当前值为 y 且 x + 1 >= y, 则可以构造出 [0, x + y],总数为 x + y + 1 |
330. 按要求补齐数组
给定一个已排序的正整数数组 nums
,和一个正整数 n
。从 [1, n]
区间内选取任意个数字补充到 nums 中,使得 [1, n]
区间内的任何数字都可以用 nums 中某几个数字的和来表示。
请返回 满足上述要求的最少需要补充的数字个数 。
示例 1:
输入: nums = [1,3], n = 6 |
示例 2:
输入: nums = [1,5,10], n = 20 |
示例 3:
输入: nums = [1,2,2], n = 5 |
提示:
1 <= nums.length <= 1000
1 <= nums[i] <= 104
nums
按 升序排列1 <= n <= 231 - 1
C++
class Solution { |