`
carlosten
  • 浏览: 3435 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

LeetCode: Climbing Stairs

阅读更多

题目描述:

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?

 

实际上是斐波那契数列,第n steps的方法为第n-1 steps和第n-2 steps的方法数之和。

处理边界条件,即n为1和n为2的时候,直接返回结果。

 

class solution{
public:
	int climbStaris(int n){
		int result;
		int lastone;
		int lasttwo;
		int i;
		if(n == 1)
		{
			return 1;
		}
		else if(n == 2)
		{
			return 2;
		}
		lastone = 2;
		lasttwo = 1;
		for(i = 2;i < n;i ++)
		{
			result = lastone + lasttwo;
			lasttwo = lastone;
			lastone = result;
		}
		return result;
	}
};

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics