题解 | #跳台阶#
跳台阶
https://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4
import java.util.*;
/**
方法1:暴力递归,时间复杂度超过了,是n的指数O(2^n)
方法2:用空间换时间,把部分重复计算的保存起来,遇到后就直接返回。
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param number int整型
* @return int整型
*/
//全局
int[] dp = new int[1024];
public int jumpFloor (int number) {
return DF(number);
}
public int DF(int number) {
if (number <= 1) {
return 1;
}
if(dp[number] !=0){
//有值不用计算直接返回
return dp[number];
}
//把计算的结果存起来放到申明的数组中
// 后面的递归进来后如果没有值再计算
dp[number] = DF(number - 1) + DF(number - 2);
return dp[number];
}
}

查看21道真题和解析