您的位置:首页 > 其它

LeetCode 055 Jump Game

2016-06-23 23:06 323 查看
题目大意:给出一个非负整数数组,开始你站在第一个数字上。当前位置的数字表示你最多能往下跳多远。问能否跳到最后一个数字上。

同45题Jump Game II类似。

记录当前能跳到的位置cur,和下一步能跳到的位置next。从数组的第一个位置开始扫描,如果cur小于当前位置,判断next是否也小于当前位置,如果是就返回false,否则用next更新cur。然后从当前位置再跳一步的最远位置是否大于next,如果是就更新next。最后如果cur大于数组的末尾位置就返回true。

代码:

bool canJump(vector<int>& nums) {
int cur, next;
cur = nums[0];
next = nums[0];
for(int i = 1 ; i < nums.size() ; i++) {
if(cur < i) {
if(next < i)
return false;
cur = next;
}
if(i + nums[i] > next)
next = i + nums[i];
if(cur >= nums.size() - 1)
return true;
}
return true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode