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

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

《劍指offer》 NO.8 跳臺階

2019-11-11 05:31:55
字體:
來源:轉載
供稿:網友

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仁布县| 大厂| 文成县| 大化| 新津县| 岫岩| 江川县| 澳门| 桦川县| 百色市| 嵊泗县| 巩留县| 通化市| 沐川县| 台山市| 台北市| 驻马店市| 益阳市| 鄱阳县| 盐亭县| 东安县| 连城县| 宁安市| 忻州市| 伊宁县| 宿迁市| 乌什县| 都昌县| 石屏县| 嘉祥县| 广安市| 湄潭县| 丰台区| 郑州市| 通许县| 长治县| 九寨沟县| 屏山县| 开鲁县| 都江堰市| 东明县|