您的位置:首页 > 大数据 > 人工智能

lintcode-easy-Climbing Stairs

2016-02-21 18:07 483 查看
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?

Example

Given an example n=3 , 1+1+1=2+1=1+2=3

return 3

动态规划里思路比较容易理清的一题,要走到第n个台阶有两种选择,要么从第n-1阶走一个台阶上来,要么从第n-2阶走两个台阶上来。

public class Solution {
/**
* @param n: An integer
* @return: An integer
*/
public int climbStairs(int n) {
// write your code here
if(n == 0)
return 1;
if(n == 1)
return 1;
if(n == 2)
return 2;

int[] result = new int[n + 1];
result[0] = 1;
result[1] = 1;
result[2] = 2;

for(int i = 3; i <= n; i++)
result[i] = result[i - 1] + result[i - 2];

return result
;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: