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

[LeetCode]Climbing Stairs

2015-03-29 21:13 232 查看
今天TX笔试。感觉做的很一般,以前的知识都忘光了。另外得知投PC客户端方向的人数“较多”,心都凉了半截。

不过有一道简答题是LeetCode OJ上做过的。出来跟同学讨论,发现有人在这题上费了不少时间。

于是觉得LeetCode 确实挺有用的,毕竟都是些经典题,针对找工作要笔试面试的码农设计的。

目前LeetCode 上我是把Easy难度的都做完了,平时一边刷题一边会做些笔记。

今天开始,就把笔记po到这博客上来好了。以后会陆陆续续地更新。

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?

其实就是斐波那契数列了!

设f(n)是n步的总方法数。

则f(1)=1,f(2)=2,f(n)=f(n-1) + f(n-2)

class Solution {
public:
int climbStairs(int n) {
if (n == 1 || n == 2) {
return n == 1 ? 1 : 2;
}
int a = 2, b = 1, c;
for (int i = 0; i < n - 2; i++) {
c = a + b;
b = a;
a = c;
}
return a;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: