class Solution {
public int jump(int[] nums) {
// 初始化步数为0
int step = 0;
// 初始化当前能到达的最远位置为0
int maxp = 0;
// 初始化下一个跳跃的边界位置为0
int end = 0;
// 遍历数组,除了最后一个元素
for(int i=0;i<nums.length-1;i++) {
// 如果当前位置加上当前位置的值大于最远位置,更新最远位置
if(nums[i] + i > maxp)
maxp = nums[i]+i;
// 如果当前位置等于下一个跳跃的边界位置
if(end == i) {
// 更新下一个跳跃的边界位置为最远位置
end = maxp;
// 步数加1
step++;
}
}
// 返回总步数
return step;
}
}
力扣45.跳跃游戏II
听风客12024-08-29 10:14
相关推荐
坚持编程的菜鸟5 小时前
模拟实现memmove码农颜6 小时前
5.4.1 锁分类wabs6666 小时前
关于图论【最短路径之Dijkstra算法(堆优化版)|卡码网47.参加科学大会的思考】坚持编程的菜鸟7 小时前
编写判断大小端程序papaofdoudou7 小时前
判断排列逆序奇偶性的乘积判别法(范德蒙德符号法)linux-hzh7 小时前
百日算法修炼 · Day 03问商十三载8 小时前
RAG 检索效果差怎么排查?2026 五层诊断法完整指南不负岁月无痕8 小时前
简单理解操作系统结构mister_guo8 小时前
Java线程池参数应该如何设置(ThreadPoolExecutor)余额瞒着我当琳8 小时前
C++模板初阶与STL初探