Jump Game

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;
    }
};


發佈了236 篇原創文章 · 獲贊 0 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章