Jump Game
class Solution { public: int jump(int A[], int n) { // Start typing your C/C++ solution below // DO NOT write int main() function if( n==0 || n == 1 ) return 0; int cur = 0,newCur = 0; int step = 0; while( cur < n ) { if( cur + A[cur] >= n-1 ) return step+1; int flag = 0; for( int i=1;i<=A[cur];i++ ) { if( cur+i+A[cur+i] >= A[flag] + flag ) flag = cur + i; } cur = flag; step++; } return step; } };
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 && cur < n-1 ) return false; if( cur + A[cur] >= n-1 ) return true; int flag = cur; for( int i=1;i<=A[cur];i++ ) { if( A[cur+i] + cur + i >= A[flag]+flag ) flag = cur + i; } cur = flag; } return true; } };
posted on 2013-07-04 21:36 jumping_grass 阅读(186) 评论(0) 收藏 举报
浙公网安备 33010602011771号