Leetcode-Jump Game II
题目描述
-
Given an array of non-negative integers, you are initially positioned at the first index of the array.
-
Each element in the array represents your maximum jump length at that position.
-
Your goal is to reach the last index in the minimum number of jumps.
-
For example: Given array
A = [2,3,1,1,4]
-
The minimum number of jumps to reach the last index is 2. (Jump 1 step from index 0 to 1, then 3 steps to the last index.)
AC代码
#include <iostream>
#include <cstdio>
using namespace std;
//从第一个数开始,从它的所有可能性中选择可以跳的最远的那个点,跳到那个点,继续上述过程。
int jump(int A[], int n)
{
int curmax = 0,nextmax = 0, count = 0;
for(int i = 0; i < n; i++)
{
if(i > curmax)
{
curmax = nextmax;
count++;
}
nextmax = nextmax > (A[i] + i) ? nextmax : (A[i] + i);
}
return count;
}
int main()
{
int n;
cin>>n;
int A[n];
for(int i = 0; i < n; i++)
cin>>A[i];
cout<<jump(A,n)<<endl;
return 0;
}