Menu
CoddyTech

Jump Game

Bạn đang ở chỉ số 0 của mảng nums. Từ chỉ số i, bạn có thể nhảy về phía trước từ 1 đến nums[i] bước, vì vậy nums[i] là khoảng nhảy xa nhất từ đó và 0 có nghĩa là bạn không thể di chuyển. Trả về true nếu có một chuỗi các bước nhảy đưa bạn đến chỉ số cuối cùng, nếu không thì trả về false.

Hàm

canJump(nums: integer-array) → boolean
numsinteger-array
cú nhảy xa nhất bạn có thể thực hiện từ mỗi chỉ số
Trả vềboolean
đúng nếu bạn có thể đến được chỉ số cuối cùng khi bắt đầu từ chỉ số 0, nếu không thì sai

Ràng buộc

  • 1 ≤ nums.length ≤ 104
  • 0 ≤ nums[i] ≤ 105
  • Một bước nhảy có thể ngắn hơn nums[i], vì vậy một bước nhảy dài không bao giờ buộc bạn vượt quá chỉ số cuối cùng.

Ví dụ

Đầu vào
nums = [2, 0, 3, 1, 0, 2]
Đầu ra
true
Giải thích
Từ chỉ số 0, bạn có thể đến chỉ số 1 hoặc 2. Chỉ số 1 chứa 0 và là ngõ cụt, nhưng chỉ số 2 chứa 3 và dẫn đến chỉ số 5, chỉ số cuối cùng.
challenge icon

Câu hỏi mở rộng

Đếm số chuỗi nhảy khác nhau để đến chỉ số cuối cùng, lấy modulo 10^9+7, vẫn trong thời gian O(n).

Đặt lại code
def canJump(nums):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

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

Đầu ra mong đợi

true