国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 永定县| 河源市| 玛曲县| 五河县| 山阴县| 蒲江县| 永登县| 呼图壁县| 全南县| 金寨县| 镇江市| 屏东县| 修武县| 松溪县| 宁波市| 乐陵市| 岢岚县| 将乐县| 福安市| 海丰县| 咸阳市| 大英县| 呼伦贝尔市| 潍坊市| 巴彦淖尔市| 古蔺县| 麻城市| 马山县| 中江县| 宝山区| 赤峰市| 新丰县| 伊金霍洛旗| 左云县| 宣武区| 攀枝花市| 肇东市| 凤山县| 泸西县| 石泉县| 安岳县|