您的位置:首页 > 其它

canJump&&jumpII

2015-11-10 16:20 381 查看
#include<iostream>

#include<algorithm>

#include<vector>

using namespace std;

bool canJump(int a[], int n)

{<
4000
br />int reach = 1;
for (int i = 0;i < reach&&reach < n;++i)
{
reach = max(reach, i + 1 + a[i]);
}
return reach >= n;

}

bool canJump1(int a[], int n)

{
if (n == 0)
return true;
int left_most = n - 1;                                                                                                                                                                                                      
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                               
      
for (int i = n - 2;i >= 0;--i)
if (i + a[i] >= left_most)
left_most = i;
return left_most == 0;

}

bool canJump2(int a[], int n)

{
vector<int>f(n, 0);
f[0] = 0;
for (int i = 1;i < n;++i)
{
f[i] = max(f[i - 1], a[i - 1])-1;
if (f[i] < 0)
return false;
}
return f[n - 1] >= 0;

}

int jump(int A[], int n)

{
int left = 0;
int right = 0;
int step = 0;
if (n == 1)
return 0;
while (left <= right)
{
++step;
int old_right = right;
for (int i = left;i <=old_right;++i)
{
if (i + A[i] >= n - 1)
return step;
if (i + A[i]>right)
right = i + A[i];
}
left = old_right + 1;
}

}

int main()

{
int a[] = { 2,3,1,1,4 };
int n = sizeof(a) / sizeof(int);
int b[] = { 3,2,1,0,4 };
int m = sizeof(b) / sizeof(int);
cout << canJump2(a, n) << endl;
cout << canJump2(b, m) << endl;
cout << jump(a, n) << endl;

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