LeetCode题解:Climbing Stairs
来源:互联网 发布:阿里云 vpc 内网 编辑:程序博客网 时间:2024/05/22 00:42
题目链接:
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步才能到达楼梯顶部,每一次你既可以爬一个台阶,也可以爬两个台阶,那么一共有多少种不同的方式可以走到楼梯的顶部?
解题方案:
由题目描述,我们可以知道,数字n代表着台阶的阶数,这个就是我们的输入。然后我们根据输入推断出一共有多少不同的方案,例如 n = 0,那么我的方案为s = 0, n = 1 , s = 1, n = 2, s = 2, n = 3 , s = 3………; 到走到最后一步时,我们既可以从第n-1个台阶跨上去,也可以从n-2个台阶上跨上去,所以我们走n个台阶的方案数就是n-1个台阶的方案数和n-2个台阶方案数之和,S[n] = S[n-1] + S[n-2]; 这是什么? 大声的告诉我! 这是不是斐波那契数列!!!???,
明白了解题思路我们的代码就很好写了:
int climbStairs(int n) { int stairs[1000]; if (n <= 2) { return n; } stairs[1] = 1; stairs[2] = 2; for (int i = 3; i <= n; ++i) { stairs[i] = stairs[i-1] + stairs[i-2]; } return stairs[n];}
遇到爬楼梯问题已经四年了,一直还不知道它是斐波那契数列呢。
0 0
- LeetCode题解:Climbing Stairs
- LeetCode题解:Climbing Stairs
- LeetCode题解:Climbing Stairs
- LeetCode 题解(226) : Climbing Stairs
- Leetcode题解 70. Climbing Stairs
- LeetCode 70 Climbing Stairs题解
- leetcode题解-70. Climbing Stairs
- LeetCode70. Climbing Stairs题解
- LeetCode 70. Climbing Stairs 题解 —— Java
- 【动态规划】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
- Nmon工具的使用
- GRE写作必备句型
- NSPredicate用法总结
- apache反向代理和负载均衡总结
- 字典:NSDictionary(不可变字典)、NSMutableDictionary(可变字典)、字面量
- LeetCode题解:Climbing Stairs
- Hollo大家
- 高斯模糊效果
- 定时任务 Spring整合Quartz
- C#泛型学习2
- 去除缓存+刷新快捷键
- 修改系统文件中字符串
- 个人常用iOS第三方库以及XCode插件介绍
- Android中ListView中定义头条目