Menu
CoddyTech

Subset Sum Problem

nums zawiera dodatnie liczby całkowite, a target jest dodatnią liczbą całkowitą. Czy możesz wybrać niektóre wartości, każdą pozycję najwyżej raz, tak aby ich suma wynosiła dokładnie target? Zwróć true, jeśli jest to możliwe, i false, jeśli żaden wybór nie zadziała.

Funkcja

isSubsetSum(nums: integer-array, target: integer) → boolean
numsinteger-array
dodatnie wartości, które możesz wybrać
targetinteger
dokładna suma, do której muszą się równać wybrane wartości
Zwracaboolean
true, gdy niektóre wartości sumują się dokładnie do target, w przeciwnym razie false

Ograniczenia

  • 1 ≤ nums.length ≤ 200
  • 1 ≤ nums[i] ≤ 104
  • 1 ≤ target ≤ 104

Przykłady

Wejście
nums = [8, 3, 11, 5, 7]target = 15
Wyjście
true
Wyjaśnienie
8 + 7 = 15, więc odpowiedź to true. Wybór 3 + 5 + 7 też działa; wystarczy jeden wybór.
challenge icon

Pytanie dodatkowe

Dwie równe wartości na różnych pozycjach są liczone jako różne wybory. Ile wyborów daje target?

Zresetuj kod
def isSubsetSum(nums, target):
    # Napisz kod tutaj

Test #1

Test #2

Test #3

Argumenty

nums = [8, 3, 11, 5, 7]
target = 15

Oczekiwany wynik

true