55. 跳跃游戏
算法
- 维护最远可达位置:
- 使用变量
i
表示当前最远可达的位置 - 初始位置为
0
- 使用变量
- 逐步检查跳跃能力:
- 遍历数组,当前下标为
j
,检查是否可以到达:- 如果
i < j
,说明无法继续前进,返回false
- 如果
- 更新最远可达位置:
i = max(i, j + nums[j]
- 遍历数组,当前下标为
- 终止条件:
- 遍历结束后,若能始终更新
i
使其覆盖整个数组,返回true
- 遍历结束后,若能始终更新
复杂度分析
- 遍历数组一次,时间复杂度为
O(n)
- 空间复杂度为
O(1)
C++ 代码
|
|
Python 代码
|
|
Go 代码
|
|