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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

《劍指offer》 NO.8 跳臺階

2019-11-11 04:44:02
字體:
供稿:網(wǎng)友

NO.8  跳臺階

知識點:遞歸和循環(huán)

題目描述

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

思路:

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

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

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

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

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

e.可以發(fā)現(xiàn)最終得出的是一個斐波那契數(shù)列:

        

              | 1, (n=1)

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

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

代碼:

解法一:使用遞歸

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;    }}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 台东县| 大悟县| 阳春市| 封开县| 兰西县| 新邵县| 密山市| 孟州市| 达尔| 石嘴山市| 宜章县| 咸宁市| 绵竹市| 瓮安县| 雷波县| 桑植县| 台北县| 南雄市| 鹤庆县| 嵩明县| 固安县| 澄城县| 曲阜市| 屏东市| 靖州| 阿克苏市| 大丰市| 涡阳县| 阳江市| 额尔古纳市| 龙门县| 集安市| 乐亭县| 大竹县| 突泉县| 延长县| 遵化市| 靖宇县| 同仁县| 衡阳县| 富川|