跳台阶(python)】的更多相关文章

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. # -*- coding:utf-8 -*- class Solution: def jumpFloorII(self, number): # write code here #其实就是斐波那契数列问题. #假设f(n)是n个台阶跳的次数. #f(1) = 1 #f(2) 会有两个跳得方式,一次1阶或者2阶,这回归到了问题f(1),f(2) = f(2-1) + f(2-2)…
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). # -*- coding:utf-8 -*- class Solution: def jumpFloor(self, number): #找规律的解法,f(1) = 1, f(2) = 2, f(3) = 3, f(4) = 5,   #可以总结出f(n) = f(n-1) + f(n-2)的规律,但是为什么会出现这样的规律呢? #假设现在6个台阶,我们可以从第5跳一…
题目一(青蛙跳台阶): 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 假设只有一级台阶,则总共只有一种跳法: 假设有两级台阶,则总共有两种跳法: 假设有n级台阶,那么第一步就要分为跳一步和跳两步: 跳一步,那么接下来就是跳n-1: 跳两步,那么接下来就是跳n-2: 所以,总数可以认为是f(n-1)+f(n-2). 主要代码: def frog(num): if num <= 2: return num t1, t2 = 1, 2 for _…
本题来自<剑指offer> 跳台阶 题目1: 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 思路: 同上一篇. C++ Code: class Solution { public: int jumpFloor(int number) { ; ; ; ;i<=number;i++){ floor = one + two; one = two; two = floor; } return floor; } }; Pyt…
问题 一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级.求该青蛙跳上一个n 级的台阶总共有多少种跳法. 思路 当n=1时,只有一种跳法,及f(1)=1,当n=2时,有两种跳法,及f(2)=2,当n=3时,可以从n=1直接跳到n=3,也可以从n=2直接跳到n=3,及f(3)=f(1)+f(2)=3...,所以可以使用递归,自顶向下,一步一步求解,但是仔细分析一下,如果n=10,需要求得f(9)和f(8),而f(9)=f(8)+f(7),f(8)=f(7)+f(6),可以很明显看到,求了重复的f(…
跳台阶 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. class Solution { public: int jumpFloor(int number) { ) ; ) ; ; ; ; ; i <= number; i++) { rtn = n1 + n2; n1 = n2; n2 = rtn; } return rtn; } }; 变态跳台阶 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种…
题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 输入: 输入可能包含多个测试样例,对于每个测试案例, 输入包括一个整数n(1<=n<=50). 输出: 对应每个测试案例, 输出该青蛙跳上一个n级的台阶总共有多少种跳法. 样例输入: 样例输出: 解题思路: 这道题目跟之前的跳台阶大同小异,只是跳台阶的阶数从1变到了n,也就是说,不再是跳一下或者跳两下的问题,而是跳n下的问题.那么解题的思路显然还得逆向分析,我们发现: 每…
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶,求该青蛙跳上一个n级台阶总共有多少中跳法. http://www.nowcoder.com/books/coding-interviews?page=1 思路:问题本质上是fibonacci问题. class Solution {public: int jumpFloor(int number) { int jumpNumber=0;//青蛙跳台阶跳法 if(0>=number){jumpNumber=0;} else if(1==numb…
跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 思路:典型的动态规划问题,动态规划问题最关键的是把事件中的各种情形抽象为状态,然后找到前后状态之间的关系,写出状态转化方程,再翻译为代码. 可以考虑到题目中跳到第n层台阶有多少种跳法为一个状态,设置一个辅助数组dp[n+1],dp[i]代表跳到第i层台阶的跳法总数. 因为一次只能跳1层或2层,那么dp[i]仅与dp[i-1]和dp[i-2]有关系.dp[i-1]可以通过跳一层得到dp[i…
面试题9:斐波那契数列及其变形(跳台阶.矩形覆盖) 提交网址: http://www.nowcoder.com/practice/c6c7742f5ba7442aada113136ddea0c3?tpId=13&tqId=11160 参与人数:7267  时间限制:1秒  空间限制:32768K 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项 Fibonacci(int n). 分析: 用递归会TLE,因为有不少地方进行了重复计算,改为循环即可解决(迭代法…