• 腾讯//爬楼梯


     假设你正在爬楼梯。需要 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];
            }
            //递归会超时!!!!很坑
     }
  • 相关阅读:
    对组件库对再次封装
    cube-ui修改按钮颜色
    移动端框架
    mac环境变量
    Promise {<pending>
    MAC升级node及npm
    create-react-app项目中的eslint
    查看删除分支
    git分支的相关问题
    centos7系统下安装php-fpm并配置nginx支持并开启网站gzip压缩
  • 原文地址:https://www.cnblogs.com/strawqqhat/p/10602434.html
Copyright © 2020-2023  润新知