```
def canJump(self, A):
if A is None or len(A) == 1:
return True
tbl = [False for i in range(len(A))]
tbl[-1] = True
for i in range(len(A)-2, -1, -1):
v = A[i]
if v == 0: continue
for j in range(i + 1, i + v + 1):
if j >= len(tbl): break
if tbl[j]:
tbl[i] = True
break
return tbl[0]
```

any suggestions?