一、题目描述
给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。
每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处:
- 0 <= j <= nums[i]
- 0i + j <
返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]。
二、输入描述
2,3,1,1,4
三、输出描述
2
四、测试用例
测试用例1
1、输入
1,1,1,1
2、输出
3
3、说明
每次只能跳一步,所以依次从索引 0→1,1→2,2→3,总共 3 次跳跃。
测试用例2
1、输入
1,2,0,1
2、输出
2
3、说明
从索引 0(值为 1)跳到索引 1(值为 2),
这篇博客详细介绍了华为在线开发者评估(OD)中的一道跳跃游戏II的Java解题过程。题目要求在给定数组中,从初始位置开始,根据每个元素表示的最大跳跃长度,找到到达数组末尾所需的最小跳跃次数。博客内容包括题目描述、输入输出说明、解题思路、Java算法源码和实际效果展示。解题策略是使用动态规划,通过遍历数组来更新每个位置的最小跳跃次数,并最终返回到达数组最后一个位置的跳跃次数。
订阅专栏 解锁全文
3448






