南宁网站忧化,网站建设职业规划,房产信息网网址,平顶山网站建设电话目录
1#xff0c;题目
2#xff0c;代码
贪心算法正向查找
3#xff0c;学习
解题思路
具体代码处理
数组遍历的最后边界的处理#xff1a; 1#xff0c;题目
给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。
每个元素 nums[i] 表示从索引 i 向…目录
1题目
2代码
贪心算法正向查找
3学习
解题思路
具体代码处理
数组遍历的最后边界的处理 1题目
给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。
每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说如果你在 nums[i] 处你可以跳转到任意 nums[i j] 处: 2代码
贪心算法正向查找
/*** param {number[]} nums* return {number}*/
var jump function(nums) {let jumpsTemp 0;let end 0;let maxPosition 0;let steps 0;for(let i 0;inums.length-1;i){maxPosition Math.max(maxPosition,inums[i]);if(i end){end maxPosition;steps;}}return steps;
}; for(let i 0;inums.length-1;i){maxPosition Math.max(maxPosition,inums[i]);if(i end){end maxPosition;steps;}} end和maxPosition变量的值 和数组下标值保持一致便于数据的使用 3学习
解题思路 每次找到可以到达的最远位置就可以实现线性时间内得到最少的跳跃次数。 具体代码处理 思路中 应该是在每次最远距离中选择下一跳最远的才进行step这里做了转化。 维护当前能够到达的最大下标位置记作边界。我们从左到右遍历数组当到达边界的时候更新边界并将跳跃次数增加。 相比于两层嵌套的循环在时间上从O(n*n)变为O(n) 数组遍历的最后边界的处理 我们不用访问最后一个元素是因为在访问最后一个元素之前我们的边界一定大于等于最后一个元素否则无法调到最后一个位置。 勉励自己贵在坚持