[leetcode-]Climbing Stairs(C语言)
来源:互联网 发布:域名备案到期查询 编辑:程序博客网 时间:2024/06/07 22:16
问题描述:
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?
这道题如果单纯使用DFS的话会超时,比较好的方法是存一个数组,将第n步到顶的方法数存在数组[n]位置处。
代码如下:0ms
int dfs(int remain,int* store){ if(store[remain]!=-1) return store[remain]; int tmp1 = dfs(remain-1,store); int tmp2 = dfs(remain-2,store); store[remain] = tmp1+tmp2; return tmp1+tmp2;}int climbStairs(int n) { int* store = (int *)malloc(sizeof(int)*(n+1)); int i; for(i = 0;i<=n;i++) store[i] = -1; store[0] = 1; store[1] = 1; int method = dfs(n,store); free(store); return method;}
上面这种方法实在是太蠢了!换成如下:
int climbStairs(int n) { int* store = (int *)malloc(sizeof(int)*(n+1)); int i; store[0] = 1; store[1] = 1; for(i = 2;i<n;i++){ store[i] = store[i-1]+store[i-2]; } int tmp = store[n-1]+store[n-2]; free(store); return tmp;}
0 0
- [leetcode-]Climbing Stairs(C语言)
- [leetcode]Climbing Stairs(爬楼梯 C语言)
- [C++]LeetCode: 52 Climbing Stairs
- 【leetcode c++】70 Climbing Stairs
- 【C++】【LeetCode】70. Climbing Stairs
- LeetCode: Climbing Stairs
- LeetCode: Climbing Stairs
- [LeetCode]Climbing Stairs
- LeetCode Climbing Stairs
- [Leetcode] Climbing Stairs
- Leetcode: Climbing stairs
- LeetCode Climbing Stairs
- [LeetCode] Climbing Stairs
- leetcode 107: Climbing Stairs
- [LeetCode] Climbing Stairs
- [LeetCode]Climbing Stairs
- [leetcode]Climbing Stairs
- LeetCode-Climbing Stairs
- OSG中LOD的使用
- 不能再挺着了
- extended initializer lists only available with -std=c++11
- 顶着台风,也要去参加的一次“磨课”
- mysql_fetch_array()与mysql_fetch_assoc()、mysql_fetch_row()
- [leetcode-]Climbing Stairs(C语言)
- 一个Servlet可以被映射成多个mapping
- 绿色mysql初始化以及遇到一些问题解决方法
- 从零学编程2-做个工资计算器
- 一个经典例子让你彻彻底底理解java回调机制
- CF 18B Platforms
- hdu 5280 Senior's Array
- 使用brackets编译scss文件
- HDU 5281 BestCoder Round #47 1002