zoukankan      html  css  js  c++  java
  • leetcodedp归纳法爬楼梯

    
    package dp.climbStairs;
    
    /**
     * 70. 爬楼梯
     * 假设你正在爬楼梯。需要 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 阶
     */
    public class climbStairs {
    
        /**
         * 如果用递归,因为int只能递归45次,所以不会栈溢出,但是会超时
         *
         * 所以使用dp.
         * @param n
         * @return
         */
        public static int climbStairs(int n) {
            if(n==1){
                return 1;
            }
            if(n==2){
                return 2;
            }
           int dp[] = new int[n];
            dp[0]= 1;
            dp[1]=2;
            for (int i = 2; i < n; i++) {
                dp[i]=dp[i-1]+dp[i-2];
            }
            return dp[n-1];
        }
    
        public static void main(String[] args) {
            System.out.println(climbStairs(45));
        }
    }
    
    
    不会,我可以学;落后,我可以追赶;跌倒,我可以站起来!
  • 相关阅读:
    MAC 设置环境变量
    查询端口使用情况
    如何查看Oracle数据库字符集 尚未研究
    Python的MD5加密
    数据库解锁用户
    Oracle创建用户,赋予权限
    plsql
    福州周边游玩
    django笔记--1
    Linux速成
  • 原文地址:https://www.cnblogs.com/xiaoshahai/p/15753960.html
Copyright © 2011-2022 走看看