Menu
CoddyTech

Partition Equal Subset Sum

Дан массив nums положительных целых чисел. Определите, можно ли разделить значения на две группы с равными суммами. Каждое значение должно входить ровно в одну группу, а в группу можно включать значения с любых позиций. Верните true, если такое разбиение существует, и false в противном случае.

Функция

canPartition(nums: integer-array) → boolean
numsinteger-array
положительные значения, чтобы разделить их на две группы
Возвращаетboolean
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

Дополнительный вопрос

Если разделить на равные части не получается, можешь вернуть наименьшую возможную разницу между суммами двух групп?

Сбросить код
def canPartition(nums):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Случай 3

Ввод

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

Ожидается

true