Menu
CoddyTech
flag Ar iconالعربيةdown icon

Path Sum

لديك شجرة ثنائية مخزّنة في المصفوفة tree بترتيب المستويات، ورقم targetSum. يقع الجذر عند الفهرس 0، ويقع ابنا العقدة عند الفهرس i عند 2*i+1 (الأيسر) و2*i+2 (الأيمن)، وتشير -1 إلى موضع فارغ، وقد تنتهي المصفوفة بعناصر -1 إضافية. أعد true إذا كان هناك مسار من الجذر نزولًا إلى ورقة تكون مجموع قيمه مساويًا لـ targetSum، وأعد false خلاف ذلك. الورقة هي عقدة ليس لها أبناء: كلا موضعي ابنيها فارغان.

الدالة

hasPathSum(tree: integer-array, targetSum: integer) → boolean
treeinteger-array
الشجرة الثنائية بترتيب المستويات، مع استخدام -1 للدلالة على موضع فارغ
targetSuminteger
المجموع الذي يجب أن يصل إليه المسار من الجذر إلى الورقة
تُرجعboolean
صحيح إذا كان مجموع إحدى المسارات من الجذر إلى الورقة يساوي targetSum، وخطأ في غير ذلك

القيود

  • 1 ≤ tree.length ≤ 32767
  • كل عنصر من tree[i] إما -1 أو قيمة تحقق 0 ≤ tree[i] ≤ 1000.
  • tree[0] لا تكون أبدًا -1، لذا تحتوي الشجرة على عقدة واحدة على الأقل.
  • قد تنتهي المصفوفة بعناصر -1 إضافية بعد آخر عقدة.
  • ابنا الموضع الفارغ فارغان أيضًا، والعمق لا يتجاوز 14.
  • 0 ≤ targetSum ≤ 15000

أمثلة

المدخلات
tree = [3, 9, 6, -1, 2, 1, 7]targetSum = 14
المخرجات
true
الشرح
المسار 3، 9، 2 (الفهارس 0، 1، 4) مجموعه 14، و2 عند الفهرس 4 ورقة.

lock icon+14 اختبارات مخفية عند الإرسال

challenge icon

سؤال إضافي

هل يمكنك عدّ المسارات التي يكون مجموعها targetSum، عندما يُسمح للمسار أن يبدأ عند أي عقدة وينتهي عند أي عقدة أسفلها، وليس فقط أن يمتد من الجذر إلى ورقة؟

إعادة ضبط الشيفرة
def hasPathSum(tree, targetSum):
    # اكتب الكود هنا
حالات الاختبار

الحالة 1

الحالة 2

الحالة 3

المدخلات

tree = [3, 9, 6, -1, 2, 1, 7]
targetSum = 14

المتوقع

true