class Solution {
public:
bool canJump(int A[], int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int cur=0;
while (cur<n) {
if (A[cur]==0) {
if (cur==n-1) {
return true;
}else {
return false;
}
}
cur +=A[cur];
}
if (cur>=n-1) {
return true;
}
return false;
}
};
II greedy
class Solution {
public:
int jump(int A[], int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int start=0, end=0;
int cur=0, res=0;
if(n==1) return 0;
while (end<n) {
cur=0;
res++;
for (int i=start; i<=end; i++) {
if (A[i]+i>=n-1) {
return res;
}
if (A[i]+i>cur) {
cur=A[i]+i;
}
}
start=end+1;
end=cur;
}
return res;
}
};
1205

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



