zoukankan      html  css  js  c++  java
  • 力扣动态规划之爬楼梯问题

    问题描述:

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

        }
    }
  • 相关阅读:
    VS Code 的常用快捷键
    oj教程--坑
    oj教程--学习顺序
    oj教程--链表
    oj教程--队列
    oj教程--栈
    【MySQL】汇总数据
    【MySQL】使用WHERE子句
    【MySQL】SELECT语句
    【MySQL】使用MySQL(连接、选择数据库、显示数据库和表信息)
  • 原文地址:https://www.cnblogs.com/Luyang233/p/14514064.html
Copyright © 2011-2022 走看看