帮忙做网站,代理ip 海外,wordpress ajax分页插件,哈尔滨网站建设优化公司Problem: 45. 跳跃游戏 II 思路
#x1f468;#x1f3eb; 参考
每次在上次能跳到的范围#xff08;end#xff09;内选择一个能跳的最远的位置#xff08;也就是能跳到max_far位置的点#xff09;作为下次的起跳点 #xff01; Code
⏰ 时间复杂度: O ( n ) O(n… Problem: 45. 跳跃游戏 II 思路
参考
每次在上次能跳到的范围end内选择一个能跳的最远的位置也就是能跳到max_far位置的点作为下次的起跳点 Code
⏰ 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( 1 ) O(1) O(1)
class Solution {public int jump(int[] nums){int steps 0;int n nums.length;int end 0; // 上次跳跃可达范围右边界下次的最右起跳点int maxPos 0;// 目前能跳到的最远位置for (int i 0; i n - 1; i){maxPos Math.max(maxPos, nums[i] i);// 这里贪的是 (nums[i]i)
// 到达上次跳跃能到达的右边界了if (i end){end maxPos; // 目前能跳到的最远位置变成了下次起跳位置的有边界steps;// 进入下一次跳跃}}return steps;}
}