题目描述 :
解题思路 : 本题目不能一开始从最大长度进行跳跃 , 应该一次次遍历每个数组元素 , 采用贪心法 , max表示每次能够到达的最远距
离 , 使用max=max<i+nums[i]?i+nums[i]:max; 求出上一步的最优解 , 当max小于i的时候证明已经不可能到达终点了 , 直接返回
false , 当i走到末尾时则证明可以达到最后的位置 .
代码如下 :
bool canJump(int* nums, int ns) {
int max=0;
for(int i=0;i<ns;i++){
if(max<i)
return false;
max=max<i+nums[i]?i+nums[i]:max;
}
return true;
}