给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个下标。

思路:找每个点能覆盖到的最大范围,注意停止条件是不超过覆盖范围
class Solution {
public:
bool canJump(vector<int>& nums) {
//找当前位置能跳到的最大覆盖范围
int maxJump=0,dest=nums.size()-1;
for(int i=0;i<=maxJump;i++)
{
maxJump=max(maxJump,i+nums[i]);
if(maxJump>=dest) return true;
}
return false;
}
};
本文介绍了一个经典的算法问题——跳跃游戏。通过分析数组中每个元素所代表的意义,文章提供了一种有效的解决方案来判断是否能从数组的起始位置到达最后一个下标。主要思想是通过迭代寻找每个位置所能达到的最大范围。
300

被折叠的 条评论
为什么被折叠?



