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

Find if Path Exists in Graph

يحتوي الرسم البياني غير الموجّه على n عقد، مرقّمة من 0 إلى n-1. يربط كل مدخل [u, v] في edges بين العقدتين u وv، ويمكنك اجتياز الحافة في أيٍّ من الاتجاهين. أعد true إذا كان بإمكانك الانتقال من source إلى destination عبر الحواف، وأعد false خلاف ذلك. يمكن للعقدة دائمًا الوصول إلى نفسها.

الدالة

validPath(n: integer, edges: integer-2d-array, source: integer, destination: integer) → boolean
ninteger
عدد العُقَد
edgesinteger-2d-array
الحواف، وكل منها زوج [u, v] من العقد المتصلة
sourceinteger
العقدة التي تبدأ منها
destinationinteger
العقدة التي تريد الوصول إليها
تُرجعboolean
ما إذا كان مسارٌ ما يربط المصدر بالوجهة

القيود

  • 2 ≤ n ≤ 104
  • 1 ≤ edges.length ≤ 5000
  • edges[i] = [u, v] حيث 0 ≤ u, v ≤ n-1 و u ≠ v
  • لا يظهر أي ضلع مرتين، في أي من الاتجاهين.
  • 0 ≤ source, destination ≤ n-1

أمثلة

المدخلات
n = 6edges = [[0, 1], [1, 2], [2, 3], [4, 5]]source = 0destination = 3
المخرجات
true
الشرح
تستخدم المسيرة 0 → 1 → 2 → 3 ثلاث حواف، لذا يمكن الوصول إلى العقدة 3. تشكّل العقدتان 4 و5 جزءًا منفصلًا لا تحتاج إليه المسيرة مطلقًا.

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

challenge icon

سؤال إضافي

افترض أن الحواف أحادية الاتجاه: يتيح لك [u, v] الانتقال من u إلى v فقط. أيّ من الأساليب الثلاثة يظل صالحًا، وما الذي تغيّره فيها؟

إعادة ضبط الشيفرة
def validPath(n, edges, source, destination):
    # اكتب الكود هنا
حالات الاختبار

الحالة 1

الحالة 2

المدخلات

n = 6
edges = [[0, 1], [1, 2], [2, 3], [4, 5]]
source = 0
destination = 3

المتوقع

true