import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pond int整型一维数组
* @return int整型
*/
public int minJump(int[] pond) {
// 跳跃的次数
int jumpNumber = 0;
// 当前能够到的距离
int tempPos = 0;
// 下一步能够到的距离
int pos = 0;
for (int i = 0; i <= tempPos&&tempPos<pond.length-1; i++) {
// 每次更新最大能够到达的距离
pos = Math.max(pos,i+pond[i]);
// 如果i==tempPos 表明已经进入边界,需要更新当前能够到达的距离
if(i==tempPos){
// 更新距离
tempPos = pos;
// 跳跃次数++
jumpNumber++;
}
}
return jumpNumber;
}
}
本题知识点分析:
1.动态规划
2.数学模拟
3.API函数
4.数组遍历
本题解题思路分析:
1.记录当前能够到达的距离tempPos,Pos是最大能够达到的距离,jumpNumber是跳跃次数
2.每次更新最大能够到达的距离
3.如果i==tempPos 表明已经进入边界,需要更新当前能够到达的距离
4.更新距离,跳跃次数++
关键点:循环条件:i<=tempPos&&tempPos<nums.length-1,如果tempPos能够达到末尾,那么自然结束循环
本题使用编程语言: Java
如果你觉得本篇文章对你有帮助的话,可以点个赞支持一下,感谢~

京公网安备 11010502036488号