题解 | #跳台阶#
跳台阶
https://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param number int整型 * @return int整型 */ public int jumpFloor (int number) { // write code here // 动态规划 int a = 1, b = 1, c = 1; for (int i = 2; i <= number; i++) { c = a + b; a = b; b = c; } return c; } }
思路分析:
总体思想是 逆向思维,上到第n阶台阶的方式可以通过计算 上到第 n-1 阶台阶的方式数量 和 上到第 n-2 阶台阶的方式数量,然后相加得到;
1 - 1
2 - 2(1+1 --> 单纯凑数)
3 - 3(1+2)f(1)+f(2)
4 - 5(2+3)f(2)+f(3)
……