zoukankan      html  css  js  c++  java
  • Go语言实现:【剑指offer】变态跳台阶

    该题目来源于牛客网《剑指offer》专题。

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

    找规律:
    1阶:1种;
    2阶:2种;
    3阶:4种;
    4阶:8种;
    n阶:2f(n-1)种;

    或者:
    n-1阶:f(n-2)+f(n-3)+…f(1)+f(0)
    n阶:f(n-1)+f(n-2)+…f(1)+f(0) => 2f(n-1)

    得出一个斐波那契函数。

    Go语言实现:
    方法一:递归

    func jumpFloor2(N int) int {
       if N <= 0 {
          return 0
       }if N == 1 || N == 2 {
          return N
       }return 2 * jumpFloor2(N-1)
    }
    

    方法二:迭代

    func jumpFloor2(N int) int {
       if N <= 0 {
          return 0
       }if N == 1 || N == 2 {
          return N
       }
    ​
       b := 2
       for i := 3; i<= N;i++ {
          b = 2 * b
       }
       return b
    }
    
  • 相关阅读:
    Java ES api 查询例子
    leveldb学习
    Viewstamp Replication协议
    PacificA协议
    vhost架构
    数据分片方法
    常见分布式存储系统架构分析
    数据存储(B+树 vs LSM树)
    paxos算法理解
    Raft协议理解
  • 原文地址:https://www.cnblogs.com/dubinyang/p/12099368.html
Copyright © 2011-2022 走看看