zoukankan      html  css  js  c++  java
  • climbing-stairs

    题目描述

    你在爬楼梯,需要n步才能爬到楼梯顶部
    每次你只能向上爬1步或者2步。有多少种方法可以爬到楼梯顶部?
     
    递归法:
     1 import java.util.*;
     2 
     3 
     4 public class Solution {
     5     /**
     6      * 
     7      * @param n int整型 
     8      * @return int整型
     9      */
    10     public int climbStairs (int n) {
    11         if(n==1) return 1;
    12         if(n==2) return 2;
    13         return climbStairs(n-1)+climbStairs(n-2);
    14     }
    15 }

    备忘录法:

     1 import java.util.*;
     2 
     3 
     4 public class Solution {
     5     /**
     6      * 
     7      * @param n int整型 
     8      * @return int整型
     9      */
    10     int[] dp=new int[1000];
    11     public int climbStairs (int n) {
    12         dp[1]=1;
    13         dp[2]=2;
    14         if(n==1) {
    15             return 1;
    16         }
    17         if(n==2){
    18             return 2;
    19         } 
    20         if(dp[n]!=0) return dp[n];
    21         else{
    22             dp[n]=climbStairs(n-1)+climbStairs(n-2);
    23         }
    24         return dp[n];
    25     }
    26 }

    动态规划解法:

     1 import java.util.*;
     2 
     3 
     4 public class Solution {
     5     /**
     6      * 
     7      * @param n int整型 
     8      * @return int整型
     9      */
    10     public int climbStairs (int n) {
    11         if(n==1) return 1;
    12         int[] dp=new int[n+1];
    13         dp[1]=1;
    14         dp[2]=2;
    15         for(int i=3;i<=n;i++){
    16             dp[i]=dp[i-1]+dp[i-2];
    17         }
    18         return dp[n];
    19     }
    20 }
  • 相关阅读:
    java面试常见的类
    Day6
    DAY5
    Day4
    Day3
    Day2
    Day1
    echarts3关系图:力引导布局, 固定某些节点
    Hbuilder中配置cmd
    webpack 学习
  • 原文地址:https://www.cnblogs.com/Susie2world/p/13374286.html
Copyright © 2011-2022 走看看