牛客题霸NC68题解
跳台阶
https://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4?tpId=117&&tqId=34990&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking
跳台阶
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
示例1
输入
1
返回值
1
示例2
输入
4
返回值
5
解决思路
就是个斐波那契数列,代码如下:
public class Solution { public int JumpFloor(int target) { if(target <= 1){ return 1; } return JumpFloor(target-1) + JumpFloor(target-2); } }
也可以使用非递归实现,效率比较高:
public class Solution { public int JumpFloor(int target) { if(target <= 1){ return 1; } int m = 1, n = 1; for(int i = 2; i <= target; i++){ int t = m + n; m = n; n = t; } return n; } }