创意画册设计公司,网站建设优化网站排名,注册一个网站流程,wordpress图片站模板leetcode Problem: 55. 跳跃游戏
思路
假设我们是一个小人#xff0c;从第一个下标开始#xff0c;每次经过一个位置#xff0c;我们就可以根据当前位置的数值nums[i]和位置下标i计算出该位置所能到达的后续位置的最大值rnums[i]i。而这个r之前的区域一定都是可以经过的。…leetcode Problem: 55. 跳跃游戏
思路
假设我们是一个小人从第一个下标开始每次经过一个位置我们就可以根据当前位置的数值nums[i]和位置下标i计算出该位置所能到达的后续位置的最大值rnums[i]i。而这个r之前的区域一定都是可以经过的。那么我们就让小人经过这一段区域同时不断更新r的值。r得到更新后继续走继续更新。直到走到终点或者说走到r对应的位置就停止此时已无法继续前进。如果停在了r的位置那么说已经无法继续更新使得小人能继续走下去了这时若没到达终点就说明小人无法到达终点。
hint其实这道题和 小人过桥 这个小游戏很类似长按屏幕就能让桥不断变长0就是悬崖0则是地面。不同的点在于这里的桥的长度是由地面上的数字来决定。
代码
class Solution {
public:bool canJump(vectorint nums) {int i0,nnums.size(),r0;while(inir)rmax(r,inums[i]);return in;}
};