Menu
CoddyTech

Subset Sum Problem

בינוניתכנון דינמיpython iconjava iconcpp iconc iconjs icon+10

nums מכיל מספרים שלמים חיוביים, ו-target הוא מספר שלם חיובי. האם תוכל לבחור חלק מהערכים, כל מיקום לכל היותר פעם אחת, כך שסכומם יהיה בדיוק target? החזר true אם הדבר אפשרי, ו-false אם אין בחירה מתאימה.

פונקציה

isSubsetSum(nums: integer-array, target: integer) → boolean
numsinteger-array
הערכים החיוביים שאפשר לבחור מתוכם
targetinteger
הסכום המדויק שעל הערכים שנבחרו להגיע אליו
מחזירהboolean
true כאשר חלק מהערכים מסתכמים בדיוק ל־target, אחרת false

אילוצים

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

דוגמאות

קלט
nums = [8, 3, 11, 5, 7]target = 15
פלט
true
הסבר
8 + 7 = 15, לכן התשובה היא true. הבחירה 3 + 5 + 7 עובדת גם היא; בחירה אחת מספיקה.
challenge icon

שאלת המשך

שני ערכים שווים במיקומים שונים נחשבים לבחירות שונות. כמה בחירות מגיעות ל־target?

איפוס הקוד
def isSubsetSum(nums, target):
    # כתבו כאן קוד

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנטים

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

הפלט הצפוי

true