带有缓存的递归算法
public class Solution {
private static int[] CACHE = new int[100];//缓存,用于记录之前的操作过程中留下的记录
public int jumpFloor(int target) {
if (target == 1){
return 1;
}
if (target == 2) {
return 2;
}
if (CACHE[target -2] > 0 && CACHE[target - 1] > 0){//CACHE[target - 1],CACHE[target - 2]分别为前两次计算获得结果
return CACHE[target - 1] + CACHE[target - 2];
}
CACHE[target] = jumpFloor(target - 2) + jumpFloor(target - 1);
return CACHE[target];
}
}

京公网安备 11010502036488号