70. Climbing Stairs
来源:互联网 发布:一级域名免费注册 编辑:程序博客网 时间:2024/06/02 04:06
描述:
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?
动态规划
初始状态为
dp[0] = 1, dp [1] = 1
动态规划等式
dp[n] = dp[n-1] + dp[n-2]
不难得到代码
public class Solution { public int climbStairs(int n) { if(n < 2) return 1; int [] dp = new int[3]; dp[0] = 1; dp[1] = 1; for(int i = 2; i <= n; i++) { dp[i % 3] = dp[(i - 1) % 3] + dp[(i - 2) % 3]; } return dp[n % 3]; }}
其中,对3取模是对空间进行优化,如果去掉的话可以提高运算速度,时间还是空间的抉择看人了
矩阵求解
可参考XDOJ之feibonaqi的文章,时间复杂度可由动态规划的
队列求解
另外可用队列求解。代码如下:
public class Solution { public int climbStairs(int n) { if (n <= 1) { return 1; } int last = 1, lastlast = 1; int now = 0; for (int i = 2; i <= n; i++) { now = last + lastlast; lastlast = last; last = now; } return now; }}
0 0
- [LeetCode]70.Climbing Stairs
- 70.Climbing Stairs
- LeetCode --- 70. Climbing Stairs
- [Leetcode] 70. Climbing Stairs
- [leetcode] 70.Climbing Stairs
- 70.Climbing Stairs
- 70. Climbing Stairs
- 70.Climbing Stairs
- 70. Climbing Stairs
- [leetCode]70. Climbing Stairs
- 70. Climbing Stairs
- 70. Climbing Stairs LeetCode
- 70. Climbing Stairs
- 70. Climbing Stairs
- 70. Climbing Stairs
- [LeetCode]70. Climbing Stairs
- 【LeetCode】70. Climbing Stairs
- 70. Climbing Stairs
- DL学习笔记【11】caffe参数调节-loss层
- 像微信的底部菜单栏被键盘挤上去
- 硬件及OS知识培训List
- 网络爬虫项目开发日志(二):爬虫架构设计
- 插入最少的字符使字符串成为回文串 <最长公共子序列 + 回文>
- 70. Climbing Stairs
- DataTable 与 datagrid控件
- Eclipse调试(2)——各种类型断点设置
- CentOS 6.7安装ElasticSearch2.3.4
- 利用Hierarchy Viewer优化布局
- Windows7 64位安装Requests
- Redis Cluster 3.0.5 集群实战
- 【OpenCV笔记 14】OpenCV图像增强方法直方图均衡化
- 226. Invert Binary Tree