Menu
CoddyTech

Target Sum

لديك مصفوفة nums من أعداد صحيحة غير سالبة، وعدد صحيح target. ضع علامة زائد أو ناقص أمام كل عدد، مع الحفاظ على ترتيبها، ثم احسب قيمة التعبير. أعد عدد اختيارات العلامات التي تجعل قيمة التعبير تساوي target. يُحتسب كل اختيار من الاختيارات 2^n على حدة، لذا يُعدّ +0 و-0 اختيارين مختلفين.

الدالة

findTargetSumWays(nums: integer-array, target: integer) → integer
numsinteger-array
الأعداد، التي يحصل كلٌّ منها على إشارة
targetinteger
القيمة التي يجب أن يساويها التعبير
تُرجعinteger
عدد اختيارات الإشارات التي يساوي تعبيرها الهدف

القيود

  • 1 ≤ nums.length ≤ 20
  • 0 ≤ nums[i] ≤ 1000
  • مجموع nums لا يتجاوز 1000.
  • -1000 ≤ target ≤ 1000
  • الإجابة على الأكثر 220، وهي أقل بكثير من الحد الأقصى لعدد صحيح موقّع من 32 بت.

أمثلة

المدخلات
nums = [2, 1, 1]target = 2
المخرجات
2
الشرح
+2 +1 -1 و+2 -1 +1 كلاهما يساوي 2. مع وضع إشارة ناقص على العدد 2، فإن أكبر قيمة يمكنك الوصول إليها هي -2 + 1 + 1 = 0، لذا لا ينجح أي خيار آخر.
challenge icon

سؤال إضافي

هل يمكنك التعامل مع ما يصل إلى 40 عددًا، بقيم تصل إلى 10^9، عندما لا تتسع الذاكرة لأي مصفوفة مفهرسة بالمجموع؟

إعادة ضبط الشيفرة
def findTargetSumWays(nums, target):
    # اكتب الكود هنا

اختبار #1

اختبار #2

اختبار #3

الوسائط

nums = [2, 1, 1]
target = 2

الإخراج المتوقع

2