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