LeetCode 82 Climbing Stairs

来源:互联网 发布:时时彩后二智能软件 编辑:程序博客网 时间:2024/06/08 17:04
You are climbing a stair case. It takes n steps to reach to the top.

Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?

分析:

上台阶问题,属于最简单的动规问题。

子问题:上 i 级台阶有几种方式, dp[i],

状态转移方程:

因为有两种状态转移方式,我们就看这两种转移方式怎么组合转换,就这道题来讲,是相加的方式:

dp[i] = dp[i-1] + dp[i-2]

public class Solution {    public int climbStairs(int n) {        //最简单的动规问题了        if(n==0 || n==1 || n==2)            return n;        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];    }}


0 0
原创粉丝点击