• 刷题-力扣-70. 爬楼梯


    70. 爬楼梯

    题目链接

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/climbing-stairs/
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    题目描述

    假设你正在爬楼梯。需要 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 阶
    

    题目分析

    1. 根据题目描述,假设f(i)表示i阶台阶存在的不同方法数
    2. 最后一阶台阶可能是跨越1阶,也可能是跨越两阶,故有f(x)=f(x-1)+f(x-2)

    代码

    class Solution {
    public:
        int climbStairs(int n) {
            if (n < 2) return 1;
            int front = 1;
            int mid = 1;
            int rear = front + mid;
            for (int i = 1; i < n; ++i) {
                rear = front + mid;
                front = mid;
                mid = rear;
            }
            return rear;
        }
    };
    
  • 相关阅读:
    maven
    sublime text
    ios category
    python
    activiti
    出版社
    gradle
    selenium
    spring
    Ansible状态管理
  • 原文地址:https://www.cnblogs.com/HanYG/p/14744437.html
Copyright © 2020-2023  润新知