zoukankan      html  css  js  c++  java
  • 腾讯//爬楼梯

     假设你正在爬楼梯。需要 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 阶
    class Solution {
        public int climbStairs(int n) {
            if(n==1) return 1;
            if(n==2) return 2;
            int[] nums = new int[n+1];
            nums[1] = 1;
            nums[2] = 2;
            climb(nums, n);
            return nums[n];
        }
        public static void climb(int[] nums, int n){
            int x = n-1;
            int y = n-2;
            if(x>2&&nums[x]==0)
                climb(nums,x);
            if(y>2&&nums[y]==0)
                climb(nums,y);
            nums[n] = nums[x] + nums[y];
        }
    }
    class Solution {
            public int climbStairs(int n) {
                if(n <=1){
                    return 1;
                }
                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];
            }
            //递归会超时!!!!很坑
     }
  • 相关阅读:
    KafkaZookeeper1-整体介绍
    spark thrift server configuration
    Spark Streaming 总结
    SparkSession
    Spark SQL
    Kafka Consumer2
    Kafka Consumer1
    Storm Spout
    java Future && Guava Future
    基本命令
  • 原文地址:https://www.cnblogs.com/strawqqhat/p/10602433.html
Copyright © 2011-2022 走看看