原题题目
代码实现(首刷部分看解部分自解)
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;
}