题意:给定一个数组,元素代表从该点可以跳的最大范围,求从起点到终点最小的步数。
思路:贪心去推,贪心的规则就是在能够到达的范围之内,选择一个能够到达最远距离的点,更新步数,和更新最远到达的范围。
代码:
int jump(int A[], int n) {
int maxx=0,temp=0,num=0;
for(int i=0;i<n;)
{
if(temp>=n-1)break;
while(i<=temp)
{
maxx=max(maxx,i+A[i]);
++i;
}
num++;
temp=maxx;
}
return num;
}