跳台阶

题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

分析:这是一道经典的递推题目,你可以想如果青蛙当前在第 n 级台阶上,那它上一步是在哪里呢?显然,由于它可以跳 1 级台阶或者 2 级台阶,所以它上一步必定在第 n-1,或者第 n-2 级台阶,也就是说它跳上 n 级台阶的跳法数是跳上 n-1 和跳上 n-2 级台阶的跳法数之和。设跳上  级台阶有  种跳法,则它跳上n级的台阶有  种跳法。然后,我们又思考初始()的情况,跳上 1 级台阶只有 1 种跳法,跳上 2 级台阶有 2 种跳法,最终我们得到如下的递推式:

 

PS:与牛客相同!

 1 public class Solution {
 2     public int JumpFloor(int target) {
 3         if(target <= 1) {
 4             return target;
 5         }
 6         int a = 1, b = 1, c = 0;
 7         for (int i = 2; i <= target; i++) {
 8             c = a + b;
 9             a = b;
10             b = c;
11         }
12         return c;
13     }
14 }

 

posted on 2020-09-10 20:40  _那些你很冒险的梦  阅读(110)  评论(0)    收藏  举报

导航