Menu
CoddyTech

Jump Game

אתה עומד באינדקס 0 של המערך nums. מהאינדקס i אפשר לקפוץ קדימה מספר צעדים כלשהו בין 1 ל־nums[i], כך ש־nums[i] הוא הקפיצה הארוכה ביותר שלך משם, ו־0 פירושו שאינך יכול לזוז. החזר true אם רצף כלשהו של קפיצות מגיע לאינדקס האחרון, ואחרת החזר false.

פונקציה

canJump(nums: integer-array) → boolean
numsinteger-array
הקפיצה הארוכה ביותר שאפשר לבצע מכל אינדקס
מחזירהboolean
אמת אם אפשר להגיע לאינדקס האחרון החל מאינדקס 0, אחרת שקר

אילוצים

  • 1 ≤ nums.length ≤ 104
  • 0 ≤ nums[i] ≤ 105
  • קפיצה עשויה להיות קצרה מ־nums[i], ולכן קפיצה ארוכה לעולם לא תאלץ אותך לעבור את האינדקס האחרון.

דוגמאות

קלט
nums = [2, 0, 3, 1, 0, 2]
פלט
true
הסבר
ממפתח 0 אפשר להגיע למפתח 1 או 2. במפתח 1 נמצא 0 והוא מבוי סתום, אבל במפתח 2 נמצא 3 ואפשר להגיע ממנו למפתח 5, המפתח האחרון.

lock icon+18 בדיקות נסתרות בשליחה

challenge icon

שאלת המשך

חשבו את מספר רצפי הקפיצות השונים שנוחתים באינדקס האחרון, מודולו 10^9+7, ועדיין בזמן O(n).

איפוס הקוד
def canJump(nums):
    # כתבו כאן את הקוד
מקרי בדיקה

מקרה 1

מקרה 2

מקרה 3

קלט

nums = [2, 0, 3, 1, 0, 2]

צפוי

true