zoukankan      html  css  js  c++  java
  • 第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 阶

    二. 解题思路

    运用动态规划来解决此题,首先要得到动态规划的状态转移方程。f(n)=f(n-1)+f(n-2);

    步骤一:根据状态转移函数可知,到达目标楼梯n的分别是n-1走一步和n-2走两步之和,则当从最后一步往初始步进行规划。

    步骤二:经过循环可得到最终的可能性,此题非常简单,没啥可说的

    三. 执行结果

    执行用时 :0 ms, 在所有 java 提交中击败了100.00%的用户

    内存消耗 :32.8 MB, 在所有 java 提交中击败了73.84%的用户

    四. Java代码

    class Solution {
        public int climbStairs(int n) {
              int first=1;
                int second=1;
                int temp=0;
                if(n==0)
                {
                    return temp;
                }
                if(n==1)
                {
                    return second;
                }
                for(int i=2;i<=n;i++)
                {
                    temp=first+second;
                    first=second;
                    second=temp;
                }
                return temp;
        }
    }
  • 相关阅读:
    面相对象2016/4/19
    2016/4/19
    ajax2016/4/15 post与get
    iframe2016/4/12
    Hibernate报错解决Error parsing JNDI name [],Need to specify class name
    vue-router 源码解析最简版
    vue数据响应式原理
    3-箭头函数与普通函数
    2.1.7 html的处理与打包
    2.1.6 css的编译与处理 -2
  • 原文地址:https://www.cnblogs.com/xiaobaidashu/p/11698930.html
Copyright © 2011-2022 走看看