Menu
CoddyTech

Partition Equal Subset Sum

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

נתון לך מערך 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