国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

《劍指offer》 NO.8 跳臺階

2019-11-11 04:04:02
字體:
來源:轉載
供稿:網友

NO.8  跳臺階

知識點:遞歸和循環

題目描述

一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。

思路:

對于本題,前提只有 一次 1階或者2階的跳法。

a.如果兩種跳法,1階或者2階,那么假定第一次跳的是一階,那么剩下的是n-1個臺階,跳法是f(n-1);

b.假定第一次跳的是2階,那么剩下的是n-2個臺階,跳法是f(n-2)

c.由a/b假設可以得出總跳法為: f(n) = f(n-1) + f(n-2) 

d.然后通過實際的情況可以得出:只有一階的時候 f(1) = 1 ,只有兩階的時候可以有 f(2) = 2

e.可以發現最終得出的是一個斐波那契數列:

        

              | 1, (n=1)

f(n) =     | 2, (n=2)

              | f(n-1)+f(n-2) ,(n>2,n為整數)

代碼:

解法一:使用遞歸

public class Solution {    public int JumpFloor(int target) {        if(target==1||target==2){            return target;        }        else{            return JumpFloor(target-1)+JumpFloor(target-2);        }    }}解法二:使用迭代

public class Solution {    public int JumpFloor(int target) {        if(target==0)            return 1;        if(target==1)            return 1;        int si_1=1;        int si_2=1;        int result=0;        for(int i=2;i<=target;i++){            result=si_1+si_2;            si_2=si_1;            si_1=result;        }        return result;    }}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巍山| 运城市| 曲靖市| 大英县| 威宁| 桓台县| 神农架林区| 成安县| 水富县| 余姚市| 枝江市| 曲沃县| 通榆县| 浦北县| 阜新市| 靖远县| 永胜县| 南皮县| 巧家县| 桂平市| 鄂托克旗| 达拉特旗| 清丰县| 新和县| 靖安县| 大悟县| 墨江| 和田县| 连南| 共和县| 潮州市| 南木林县| 昌黎县| 平陆县| 岳普湖县| 锡林浩特市| 进贤县| 奎屯市| 四子王旗| 钟祥市| 蕉岭县|