leetcode70题 题解 翻译 C语言版 Python版
来源:互联网 发布:java并发编程好的书籍 编辑:程序博客网 时间:2024/06/10 23:59
70. 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?
70.爬楼梯
你现在在爬一个楼梯,到顶一共是n步。
每次你能上一步或者上两步。那么你能有多少种不同的方式爬到顶呢?
思路:这题很明显使用递归解决。判断n需要多少步时只需要将n-1的步数及n-2的步数相同即可。递归的终点是n为1或n为2时,n为1时返回1,n为2时返回2。不过这题在leetcode上使用递归提交的话会遇到超时的问题,显然出题者不希望我们用递归去解决。因为递归都能转化成循环结构,所以我们尝试用一个简单的循环来解决此题。用递归时思想是从高台阶往低台阶一阶阶的往下推,然后从低台阶到高台阶一阶阶的递归返回得到结果。基于这种思想我们在设计循环时应该把握低台阶到高台阶递归式的办法。比如说,当前要求5阶,那么从1阶开始推2阶,再推3阶,一阶阶推到5阶。限于题意,此题应当两阶两阶的向上推。那么可以想像到,我们保留第n-2阶的步数种类为p,保留n-1阶的步数种类为q,那么当前n阶的步数种类就是t=p+q,那么进入下一个循环我们要面对的是n-1阶和n阶去推导n+1阶的步数种类,所以要将n-1阶的步数种类设成p,n阶的步数种类设成q,然后进行下一步的推导。这中间有一个变量传递的问题,需要认真理解。
int climbStairs(int n) { if (n < 3) return n; int p = 1; int q = 2; for (int i = 0; i < n - 2; i++){ int t = p + q; p = q; q = t; } return q;}
class Solution(object): def climbStairs(self, n): """ :type n: int :rtype: int """ if n < 3: return n p, q = 1, 2 for i in range(n-2): p, q = q, p+q return q
0 0
- leetcode70题 题解 翻译 C语言版 Python版
- leetcode292题 题解 翻译 C语言版 Python版
- leetcode258题 题解 翻译 C语言版 Python版
- leetcode104题 题解 翻译 C语言版 Python版
- leetcode237题 题解 翻译 C语言版 Python版
- leetcode226题 题解 翻译 C语言版 Python版
- leetcode283题 题解 翻译 C语言版 Python版
- leetcode100题 题解 翻译 C语言版 Python版
- leetcode242题 题解 翻译 C语言版 Python版
- leetcode171题 题解 翻译 C语言版 Python版
- leetcode235题 题解 翻译 C语言版 Python版
- leetcode206题 题解 翻译 C语言版 Python版
- leetcode328题 题解 翻译 C语言版 Python版
- leetcode191题 题解 翻译 C语言版 Python版
- leetcode83题 题解 翻译 C语言版 Python版
- leetcode263题 题解 翻译 C语言版 Python版
- leetcode326题 题解 翻译 C语言版 Python版
- leetcode231题 题解 翻译 C语言版 Python版
- 安卓开发——MotionEvent中getAction、getActionMask、getActionIndex区别
- iOS中 支付宝钱包详解
- POJ-2586
- Android Studio酷炫插件(一)——自动化快速实现Parcelable接口序列化
- VB.NET视频打开方式
- leetcode70题 题解 翻译 C语言版 Python版
- BZOJ 4337: BJOI2015 树的同构|Hash
- Python教程学习简记10--Python 匿名函数
- POJ1087 A Plug for UNIX(map+dinic最大流)
- iOS中单例的线程安全
- CSS的层叠和继承
- 匈牙利算法
- 14. Longest Common Prefix
- POJ1004 1003 1002 1005 1006 1007 1001刷题