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];
            }

        }
    }
  • 相关阅读:
    NSSM 将jar 安装成windows服务
    Spark Streaming
    记录一次oracle的坑 ORA08103
    POJ 3669 Meteor Shower
    LeetCode题目1~3
    POJ 3723 Conscription 并查集 + Kruskal
    LeetCode题目4:Sort List
    C++实现的快速排序
    C++实现的一段希尔排序代码
    2014大众点评Hackathon参赛感想
  • 原文地址:https://www.cnblogs.com/Luyang233/p/14514064.html
Copyright © 2011-2022 走看看