国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 互联网 > LeetCode Climbing Stairs

LeetCode Climbing Stairs

来源:程序员人生   发布时间:2014-12-07 09:38:42 阅读次数:2314次

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?

思路分析:考察DP,定义ClimbWays数组,ClimbWays[n]表示n steps不同的走法,如果第n步是1个单步,这类情况的走法有ClimbWays[n⑴]种;如果第n步是1个双步,这类情况的走法有ClimbWays[n⑵]种;因此可以得到DP方程ClimbWays[n]=ClimbWays[n⑴] + ClimbWays[n⑵] .


public class Solution { public int climbStairs(int n) { //04:10 int [] climbWays = new int[n+1]; if(n == 0) return 0; if(n == 1) return 1; climbWays[1] = 1; climbWays[2] = 2; for(int i = 3; i <= n; i++){ climbWays[i] = climbWays[i⑴] + climbWays[i⑵]; } return climbWays[n]; } //04:14 }


生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生