您的位置:首页 > 其它

leetcode Jump Game

2014-11-03 00:18 357 查看
这题和那题类似,这题更简单。我当初就做了这题。当初的代码如下:

class Solution {
public:
bool canJump(int A[], int n) {
if (n < 2)
return true;
int canReach = 0;
for (int i = 0; i < n; ++i)
{
if (i > canReach)
return false;
canReach = max(canReach, i + A[i]); // 判断和更新不要顺序颠倒了,否则犯错
}
return true;
}
};


现在做的如下:

class Solution {
public:
bool canJump(int A[], int n) {
if(n < 2) return true;
int canReach = A[0];
for (int i = 1; i <= canReach; i++)
{
canReach = max(canReach, A[i] + i);
if (canReach >= n - 1) return true;
}
return false;
}
};


两个思路都对。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: