跳台阶
题目描述:一只青蛙一次可以跳上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 }