Giả sử chúng ta có một mảng các số nguyên không âm; ban đầu đứng tại chỉ số đầu tiên của mảng. Mỗi phần tử trong mảng đại diện cho độ dài nhảy tối đa tại vị trí đó. Chúng ta phải xác định có thể đến chỉ số cuối cùng hay không. Ví dụ, mảng [2,3,1,1,4] cho kết quả true. Nhảy 1 bước từ vị trí 0 đến 1, sau đó 3 bước từ vị trí 1 đến cuối.
Các bước thực hiện
n:= độ dài mảngA- 1.- Với
itừn - 1giảm xuống-1:- Nếu
A[i] + i > n, thìn := i.
- Nếu
- Trả về
truekhin = 0, ngược lạifalse.
Ví dụ minh họa
class Solution(object):
def canJump(self, nums):
n = len(nums) - 1
for i in range(n-1, -1, -1):
if nums[i] + i >= n:
n = i
return n == 0
ob1 = Solution()
print(ob1.canJump([2,3,1,1,4]))
Đầu vào
[2,3,1,1,4]
Đầu ra
True