Climbing Stairs
来源:互联网 发布:山寨网络机顶盒 编辑:程序博客网 时间:2024/06/05 01:02
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?
Note: Given n will be a positive integer.
第一次提交的代码如下,但是发现代码运行超时。
#include<iostream>using namespace std;class Solution {public: int climbStairs(int n) { if(n == 1) return 1; else if(n == 2) return 2; else return climbStairs(n-1) + climbStairs(n-2); } };
然后就想把中间的运算结果保存起来,利用空间换时间的方式提高程序的运行效率,代码如下:
#include<iostream>#include<vector>using namespace std;class Solution { public: int climbStairs(int n) { int* p = new int[n+1]; p[1] = 1; p[2] = 2; for(int i = 3; i <= n; i++) { p[i] = p[i-1] + p[i-2]; } return p[n]; }};
但是后来发现原来这个问题可以通过线性代数中的矩阵来解决。
参考链接
Thoughts of Algorithms
Climbing Stairs
阅读全文
0 0
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- Climbing Stairs
- 牛客网---2016---华为扑克牌大小
- noip 2014年提高组大总结
- vm12安装os10.11
- Three.JS 添加灯光、材质和阴影(第一个例子)
- [运维]OSX 改变PHP安装路径环境变量
- Climbing Stairs
- C++并发编程框架Theron(5)——File reader(1)
- 兄弟郊游问题
- JavaScript基础(十) -- 设计模式
- 整理java7中几种常见同步辅助类-Exchanger
- LeetCode16
- JDBC之利用反射技术将查询结果封装为对象
- C++使用初始化列表提高效率
- swift3.0 MD5加密源码