原题题目
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210304095503219.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTAwNTE2,size_16,color_FFFFFF,t_70)
代码实现(首刷部分看解部分自解)
int memory[1000],max;void search(int* arr,int pos,int arrSize,int ability)
{
if(memory[pos]) return;memory[pos] = 1;int i;for(i=pos-1;i>=0 && pos-i<=ability && arr[i]<arr[pos];i--){
search(arr,i,arrSize,ability);memory[pos] = fmax(memory[pos],memory[i]+1);}for(i=pos+1;i<=arrSize-1 && i-pos<=ability && arr[i]<arr[pos];i++){
search(arr,i,arrSize,ability);memory[pos] = fmax(memory[pos],memory[i]+1);}if(memory[pos] > max) max = memory[pos];return;
}int maxJumps(int* arr, int arrSize, int d){
int i;memset(memory,0,sizeof(memory));max = 1;for(i=0;i<arrSize;i++)search(arr,i,arrSize,d);return max;
}