首页 > 后端开发 > php教程 > 。修补阵列

。修补阵列

PHPz
发布: 2024-07-17 19:19:22
原创
1090 人浏览过

. Patching Array

330。修补数组

给定一个排序的整数数组 nums 和一个整数 n,向数组添加/修补元素,使得 [1, n] 范围内的任何数字都可以由数组中某些元素的总和形成。

返回所需的最小补丁数

示例1:

  • 输入: nums = [1,3], n = 6
  • 输出: 1
  • 说明:
    • 数字的组合是 [1]、[3]、[1,3],它们形成可能的和:1、3、4。
    • 现在,如果我们向 nums 添加/修补 2,则组合为:[1]、[2]、[3]、[1,3]、[2,3]、[1,2,3]。
    • 可能的和为 1, 2, 3, 4, 5, 6,现在涵盖范围 [1, 6]。
    • 所以我们只需要 1 个补丁。

示例2:

  • 输入: nums = [1,5,10], n = 20
  • 输出: 2
  • 说明:这两个补丁可以是[2, 4]。

示例 3:

  • 输入: nums = [1,2,2], n = 5
  • 输出: 0

约束:

  • 1
  • 1 4
  • nums 按升序排序。
  • 1 31 - 1

解决方案:

class Solution {

    /**
     * @param Integer[] $nums
     * @param Integer $n
     * @return Integer
     */
    function minPatches($nums, $n) {
        $ans = 0;
        $i = 0;
        $miss = 1;
         while ($miss <= $n) {
            if ($i < count($nums) && $nums[$i] <= $miss) {
                $miss += $nums[$i++];
            } else {
                $miss += $miss;
                ++$ans;
            }
        }
        return $ans;
    }
}
登录后复制

联系链接

  • 领英
  • GitHub

以上是。修补阵列的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板