动态规划算法的应用
LeetCode:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 10 级的台阶总共有多少种跳法。
思考:
/**
* 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 10 级的台阶总共有多少种跳法。
* 自顶向下思考:
* 第10级:可以从第8级、第9级
* 第9级:可以从第8级、第7级
* ......
*
* 第2级:从第1级 2
* 第1级:1
*
*/
/**
* 递归求解
* @param step
* @return
*/
public static int stepNumWays(int step) {
if (step == 1) {
return 1;
}
if (step == 2){
return 2;
}
return stepNumWays(step - 1) + stepNumWays(step - 2);
}