zoukankan      html  css  js  c++  java
  • 爬楼梯的golang实现

    假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

    每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

    注意:给定 n 是一个正整数。

    输入: 2
    输出: 2
    解释: 有两种方法可以爬到楼顶。
    1.  1 阶 + 12.  2 阶
    
    输入: 3
    输出: 3
    解释: 有三种方法可以爬到楼顶。
    1.  1 阶 + 1 阶 + 12.  1 阶 + 23.  2 阶 + 1

    乍看这道题,以为是求解1和2的随机组合=n的问题,但是我们先来看看下面的表格:

    n没有2的情况有1个2的情况有2个2的情况有3个2的情况总数
    1 1       1
    2 1 1     2
    3 1 2     3
    4 1 3 1   5
    5 1 4 3   8
    6 1 5 6 1 13

    从表格看出其实是一个斐波那契数列,那么代码就很简单了

    //斐波那契数列
    func climbStairs(n int) int {
        sli := []int{1, 2, 3}
        if n <= 3 {
            return sli[n-1]
        }
        for i := 3; i < n; i++ {
            sli = append(sli, sli[i-1]+sli[i-2])
        }
        return sli[len(sli)-1]
    }
  • 相关阅读:
    checkbox的checked事件的javascript使用方法
    JSTL标签API(c)的使用
    radios控件的使用
    验证方法判斷input是否为空
    软件课设Day5
    软件课设Day4
    软件课设Day3
    软件课设Day2
    软件课设Day1
    2019/08/23最新进展
  • 原文地址:https://www.cnblogs.com/TimLiuDream/p/10081624.html
Copyright © 2011-2022 走看看