• Leecode刷题之旅-C语言/python-70爬楼梯


    /*
     * @lc app=leetcode.cn id=70 lang=c
     *
     * [70] 爬楼梯
     *
     * https://leetcode-cn.com/problems/climbing-stairs/description/
     *
     * algorithms
     * Easy (44.44%)
     * Total Accepted:    33.5K
     * Total Submissions: 75.4K
     * Testcase Example:  '2'
     *
     * 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
     * 
     * 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
     * 
     * 注意:给定 n 是一个正整数。
     * 
     * 示例 1:
     * 
     * 输入: 2
     * 输出: 2
     * 解释: 有两种方法可以爬到楼顶。
     * 1.  1 阶 + 1 阶
     * 2.  2 阶
     * 
     * 示例 2:
     * 
     * 输入: 3
     * 输出: 3
     * 解释: 有三种方法可以爬到楼顶。
     * 1.  1 阶 + 1 阶 + 1 阶
     * 2.  1 阶 + 2 阶
     * 3.  2 阶 + 1 阶
     * 
     * 
     */
    int climbStairs(int n) {
        int f1 = 1;
        int f2 = 2;
        int f3;
        int i =2;
        if(n==1){
            return 1;
        }
        if(n<1){
            return 0;
        }
        while(i<n){
            f3 = f1+f2;
            f1 = f2;
            f2 = f3;
            i++;
        }
        return f3;
    }

    n=1的时候值为1,n=2的时候值为2。n等于3的时候值为3,f3=f1+f2 是典型的斐波那契数列

    所以求n阶需要多少步,其实就是求f(n)的过程。

    ------------------------------------------------------------------------------------------------------------------------

    python:

    #
    # @lc app=leetcode.cn id=70 lang=python3
    #
    # [70] 爬楼梯
    #
    # https://leetcode-cn.com/problems/climbing-stairs/description/
    #
    # algorithms
    # Easy (44.44%)
    # Total Accepted:    33.5K
    # Total Submissions: 75.4K
    # Testcase Example:  '2'
    #
    # 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
    # 
    # 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
    # 
    # 注意:给定 n 是一个正整数。
    # 
    # 示例 1:
    # 
    # 输入: 2
    # 输出: 2
    # 解释: 有两种方法可以爬到楼顶。
    # 1.  1 阶 + 1 阶
    # 2.  2 阶
    # 
    # 示例 2:
    # 
    # 输入: 3
    # 输出: 3
    # 解释: 有三种方法可以爬到楼顶。
    # 1.  1 阶 + 1 阶 + 1 阶
    # 2.  1 阶 + 2 阶
    # 3.  2 阶 + 1 阶
    # 
    # 
    #
    class Solution:
        def climbStairs(self, n: int) -> int:
            f1=1
            f2=2
            f3=0
            i=2
            if n==1:
                return 1
            if n==2:
                return 2
            if n<1:
                return 0
            while i<n:
                f3 = f1+f2
                f1 = f2
                f2 = f3
                i+=1
            return f3
  • 相关阅读:
    mysql 大数据量求平均值
    mysql 大数据量求平均值
    dhcpd.conf(5)
    dhcpd.conf(5)
    学习记录(文章内容来自相关材料)
    分享一个ASP.NET 文件压缩解压类 C#
    服务降级
    distinct用法
    trim合理和谐
    小娱乐一下,fileInfo中的Name ,FullName的用法小BUG
  • 原文地址:https://www.cnblogs.com/lixiaoyao123/p/10515904.html
Copyright © 2020-2023  润新知