标签:
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?
Given an example n=3 , 1+1+1=2+1=1+2=3
return 3
//////////////////////////////////
分析:有四个台阶的时候,就是三个台阶的上法+1步,和2个台阶的上法+2步。
因此f(n)=f(n-1)+f(n-2);
public class Solution { /** * @param n: An integer * @return: An integer */ public int climbStairs(int n) { // write your code here int[] sum=new int[n+1]; for(int i=0;i<=n;i++) { if(i==0) sum[0]=1; else if(i==1) sum[1]=1; else if(i==2) sum[2]=2; else { sum[i]=sum[i-1]+sum[i-2]; } } return sum[n]; } }
[lintcode easy]Climbing Stairs
标签:
原文地址:http://www.cnblogs.com/kittyamin/p/5011852.html