I think the runtime should be O(N) and space complexity is O(1).

```
def jump(self, A):
if len(A) <= 1:
return 0
end = 0 + A[0]
start = 0
step = 1
maxDis = 0 + A[0]
while end < len(A)-1:
for i in range(start+1, end+1):
maxDis = max(maxDis, A[i]+i)
start = end
end = maxDis
step += 1
return step
```