import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param rivers int整型一维数组 * @return int整型 */ public int min_jumps (int[] rivers) { int length = rivers.length; int end = 0; int maxPosition = 0; int steps = 0; for (int i = 0; i < length - 1; i++) { // 取最大能跳跃到的地方 maxPosition = Math.max(maxPosition, i + rivers[i]); // 如果i==end说明,需要进行下一次跳跃 if (i == end) { // 要跳跃就去最远的位置 end = maxPosition; // 次数++ steps++; } } return steps; } }
本题知识点分析:
1.动态规划
2.贪心算法
3.数学模拟
4.数组遍历
本题解题思路分析:
1. 每次取最大能跳跃到的地方
2. 如果i==end说明,需要进行下一次跳跃
3.要跳跃就去最远的位置,次数++