zoukankan      html  css  js  c++  java
  • 剑指Offer-跳台阶

    题目描述

    一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

    思路

    思路一:

    直接用递归,对于第n个台阶来说,只能从n-1或者n-2的台阶跳上来,所以$F(n) = F(n-1) + F(n-2)$,$f(1)=1$,$f(2)=2$

    思路二:

    用迭代的方法,用两个变量记录$f(n-1)$和$f(n-2)$

    代码实现

    package Recursion;
    
    /**
     * 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
     */
    public class Solution04 {
        public static void main(String[] args) {
            Solution04 solution04 = new Solution04();
            System.out.println(solution04.JumpFloor_2(3));
    
        }
    
        /**
         * 直接用递归
         * * 对于第n个台阶来说,只能从n-1或者n-2的台阶跳上来,所以
         * F(n) = F(n-1) + F(n-2)
         * f(1)=1
         * f(2)=2
         *
         * @param target 台阶数
         * @return 跳法
         */
        public int JumpFloor(int target) {
            if (target <= 1) {
                return 1;
            }
            if (target <= 2) {
                return 2;
            } else {
                return JumpFloor(target - 1) + JumpFloor(target - 2);
            }
        }
    
        /**
         * 用迭代的方法,用两个变量记录f(n-1) f(n-2)
         *
         * @param target 台阶数
         * @return 跳法
         */
        public int JumpFloor_2(int target) {
            int one = 1, two = 2, fN = 0;
            if (target <= 0) {
                return 0;
            } else if (target == 1) {
                return 1;
            } else if (target == 2) {
                return 2;
            } else {
                for (int i = 3; i <= target; i++) {
                    fN = one + two;
                    one = two;
                    two = fN;
                }
                return fN;
            }
        }
    }
    
    
  • 相关阅读:
    2021.3.16
    2021.3.15
    通过指定的URL获取返回图片的BASE64编码
    Redis系统学习之缓存穿透,缓存击穿,缓存雪崩的概念及其解决方案
    Redis系统学习之其他高可用模型
    Redis系统学习之哨兵模式
    Redis系统学习之主从复制
    Redis系统学习之发布订阅
    Redis系统学习之持久化(AOF)
    Redis系统学习之持久化(RDB)
  • 原文地址:https://www.cnblogs.com/wupeixuan/p/8623112.html
Copyright © 2011-2022 走看看