Menu
CoddyTech

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