• 9-爬楼梯


    题目如下:

     1 /**
     2  * @author sunhongguang
     3  * @create 2020-04-17-12:10
     4  */
     5 public class Test4 {
     6     public static void main(String[] args) {
     7         int n = 45;
     8         int reslut = climbStairs(n);
     9         System.out.println(n+"阶台阶,一共有"+reslut+"种爬法");
    10     }
    11 
    12     /**假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
    13      * 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
    14      * 递归暴力求解
    15      * @param n  台阶的个数
    16      * @return   有多少中爬法
    17      */
    18     private static int climbStairs(int n) {
    19         if(n <= 2) return n;
    20         return climbStairs(n-1) + climbStairs(n-2);
    21     }
    22 
    23     /**假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
    24      * 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
    25      * 动态规划法
    26      * @param n  台阶的个数
    27      * @return   有多少中爬法
    28      */
    29     private static int climbStairs_1(int n) {
    30         if(n == 1) return 1;
    31         int[] dp = new int[n+1];
    32         dp[1] = 1;
    33         dp[2] = 2;
    34         for(int i=3;i<=n;i++){
    35             dp[i] = dp[i-1]+dp[i-2];
    36         }
    37         return dp[n];
    38     }
    39 }
  • 相关阅读:
    提升PHP执行效率的一些小细节
    linux文件处理命令
    C# file操作
    C# MD5
    C# guid
    C# Path类 Directory类
    MarkDown学习
    从GitHub建站迁移到服务器(Java环境)
    sonarqube在windows上软件安装,配置及使用
    【优化】记录一次方法性能优化
  • 原文地址:https://www.cnblogs.com/sun-/p/12719060.html
Copyright © 2020-2023  润新知