Menu
CoddyTech

Partition Equal Subset Sum

ふつう動的計画法python iconjava iconcpp iconc iconjs icon+10

正の整数の配列 nums が与えられます。値を2つのグループに分けて、それぞれの合計を等しくできるかどうかを判定してください。各値は必ずどちらか一方のグループに入り、グループには任意の位置の値を入れることができます。そのような分割が可能な場合は true を、そうでない場合は false を返してください。

関数

canPartition(nums: integer-array) → boolean
numsinteger-array
正の値を2つのグループに分ける
戻り値boolean
値を合計が等しい2つのグループに分けられる場合はtrue、そうでない場合はfalse

制約

  • 1 ≤ nums.length ≤ 200
  • 1 ≤ nums[i] ≤ 100

例

入力
nums = [6, 1, 4, 9, 2]
出力
true
説明
合計は22なので、各グループには11が必要です。9 + 2と6 + 1 + 4のグループはどちらも11になるので、答えはtrueです。

lock icon提出時に隠しテスト+18件

challenge icon

発展問題

等分できない場合、2つのグループの合計の差をできるだけ小さくして返せますか?

コードをリセット
def canPartition(nums):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

ケース3

入力

nums = [6, 1, 4, 9, 2]

期待値

true