• 力扣动态规划之爬楼梯问题


    问题描述:

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

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

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

    思路:

    第n个台阶只能从第n-1或者n-2个上来。到第n-1个台阶的走法 + 第n-2个台阶的走法 = 到第n个台阶的走法,已经知道了第1个和第2个台阶的走法,一路加上去。

    代码:

    class Solution {
        public int climbStairs(int n) {
            int sum;
            int a[] = new int [n+1];//特别注意为n+1,因为数组下标为从0开始的,故n阶楼梯的走法实际上是在a[n+1]的位置上
            if(n==1)
            {
                return 1;
            }
            else if(n==2)
            {
                return 2;
            }
            else{
            a[0] = 0;
            a[1] = 1;
            a[2] = 2;
            for(int i = 3;i<=n;i++)
            {
                a[i] = a[i-1]+a[i-2];

            }
             return a[n];
            }

        }
    }
  • 相关阅读:
    Hibernate使用笔记
    svn树冲突的解决方法
    SVN 清理失败的解决方法
    类的实现
    lua元表
    lua中table的常用方法
    C/C++作用域运算符::
    Cocos2d-x Lua 学习
    Lua学习
    吾 三十而望
  • 原文地址:https://www.cnblogs.com/Luyang233/p/14514064.html
Copyright © 2020-2023  润新知