class Solution {
public:
bool canJump(int A[], int n) {
if(n==1) return true;
int pre=0,cur=A[0],next=A[0];
/*
pre:上一個可以到達區域的右邊界
cur:由[0:pre]Jump可以到達區域的右邊界
next:由[0:cur]Jump可以到達區域的右邊界
*/
while(pre<cur)
{
for(int i=pre+1;i<=cur;i++)
{
next=max(next,i+A[i]);
if(next>=n-1)
{
return true;
}
}
pre=cur;
cur=next;
next=cur;
}
return false;
}
};
Jump Game
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.