。配列のパッチ適用

PHPz
リリース: 2024-07-17 19:19:22
オリジナル
842 人が閲覧しました

. Patching Array

330. Patching Array

Hard

Given a sorted integer array nums and an integer n, add/patch elements to the array such that any number in the range [1, n] inclusive can be formed by the sum of some elements in the array.

Returnthe minimum number of patches required.

Example 1:

  • Input:nums = [1,3], n = 6
  • Output:1
  • Explanation:
    • Combinations of nums are [1], [3], [1,3], which form possible sums of: 1, 3, 4.
    • Now if we add/patch 2 to nums, the combinations are: [1], [2], [3], [1,3], [2,3], [1,2,3].
    • Possible sums are 1, 2, 3, 4, 5, 6, which now covers the range [1, 6].
    • So we only need 1 patch.

Example 2:

  • Input:nums = [1,5,10], n = 20
  • Output:2
  • Explanation:The two patches can be [2, 4].

Example 3:

  • Input:nums = [1,2,2], n = 5
  • Output:0

Constraints:

  • 1 <= nums.length <= 1000
  • 1 <= nums[i] <= 104
  • nums is sorted inascending order.
  • 1 <= n <= 231- 1

Solution:

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; } }
ログイン後にコピー

Contact Links

  • LinkedIn
  • GitHub

以上が。配列のパッチ適用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!