斐波那契数列,跳台阶(dp思想)
一 . 斐波那契数列:1,1,2,3,5,8,13,21
即后一项是前两项的和。
class Solution {
private:
int arry[];
public:
Solution() {
memset(arry, , sizeof());
arry[] = arry[] = ;
for(int i = ; i <= ; i ++) arry[i] = arry[i - ] + arry[i - ];
}
int Fibonacci(int n) {
return arry[n];
}
};
递归方式:
int Fibonacci(int n)
{
if(n == || n == )
return ;
else
return Fibonacci(n-)+Fibonacci(n-);
}
二 . 跳台阶:
问题描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
青蛙的最后一步可能是1个台阶,也可能是两个台阶。所以F(n) = F(n-1) + F(n-2);
int jumpFloor(int number) {
int arry[number + ];
arry[] = ; arry[] = ;
for(int i = ; i <= number; i++) arry[i] = arry[i-] + arry[i-];
return arry[number];
}
三 . 变态跳台阶:
int jumpFloorII(int number) {
int n = ;
int base = ;
number -= ;
while(number)
{
if(number & )
n*=base;
base *= base;
number>>=;
}
return n;
}
一行代码 return <<--number;
斐波那契数列,跳台阶(dp思想)的更多相关文章
- [剑指OFFER] 斐波那契数列- 跳台阶 变态跳台阶 矩形覆盖
跳台阶 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. class Solution { public: int jumpFloor(int number) ...
- [ZJOI2011]细胞——斐波那契数列+矩阵加速+dp
Description bzoj2323 Solution 题目看起来非常复杂. 本质不同的细胞这个条件显然太啰嗦, 是否有些可以挖掘的性质? 1.发现,只要第一次分裂不同,那么互相之间一定是不同的( ...
- 剑指offer-第二章算法之斐波拉契数列(青蛙跳台阶)
递归与循环 递归:在一个函数的内部调用这个函数. 本质:把一个问题分解为两个,或者多个小问题(多个小问题相互重叠的部分,会存在重复的计算) 优点:简洁,易于实现. 缺点:时间和空间消耗严重,如果递归调 ...
- C#版 - 剑指offer 面试题9:斐波那契数列及其变形(跳台阶、矩形覆盖) 题解
面试题9:斐波那契数列及其变形(跳台阶.矩形覆盖) 提交网址: http://www.nowcoder.com/practice/c6c7742f5ba7442aada113136ddea0c3?tp ...
- 【Java】 剑指offer(9) 斐波那契数列及青蛙跳台阶问题
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项 ...
- (1)剑指Offer之斐波那契数列问题和跳台阶问题
一 斐波那契数列 题目描述: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项. n<=39 问题分析: 可以肯定的是这一题通过递归的方式是肯定能做出来,但是这样会有 ...
- 7、斐波那契数列、跳台阶、变态跳台阶、矩形覆盖------------>剑指offer系列
题目:斐波那契数列 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). f(n) = f(n-1) + f(n-2) 基本思路 这道题在剑指offe ...
- [剑指offer]10.斐波那契数列+青蛙跳台阶问题
10- I. 斐波那契数列 方法一 Top-down 用递归实现 def fibonacci(n): if n <= 0: return 0 if n == 1: return 1 return ...
- DP思想在斐波那契数列递归求解中的应用
斐波那契数列:1, 1, 2, 3, 5, 8, 13,...,即 f(n) = f(n-1) + f(n-2). 求第n个数的值. 方法一:迭代 public static int iterativ ...
随机推荐
- [置顶]
Android玩转百度地图Sha1获取正确姿势?
场景一 由于最近项目钟要用到定位功能因此肯定需要用到地图以及地位功能,相信大家也知道目前国内比较出名的地图像百度.高德.腾讯等这些还是用到比较多的,于是思考了一下决定还是用百度,相信老司机们都知道的哈 ...
- ubuntu在anaconda2下安装anaconda3环境 && 在Pycharm中配置Python3
适合在已经装有anaconda2环境的机器上配置anaconda3环境(或在有anaconda3的环境下再配置2). 1. 下载 anaconda3 下载地址: 推荐清华镜像 https:/ ...
- 记一次诡异的网络故障排除 - tpc_tw_recycle参数引起的网络故障
一.故障现象 我们团队访问腾讯云上部署的测试环境中的Web系统A时,偶尔会出现类似于网络闪断的情况,浏览器卡很久没有反应,最终报Connection Timeout. 不过奇怪的是,当团队中的某个人无 ...
- 20165222《Java程序设计》——实验二 面向对象程序设计
20165222<Java程序设计>——实验二 面向对象程序设计 提交点一.JUnit测试用例 知识点:这里就是了解测试代码的应用,测试代码的书写为:@Test assertEquals( ...
- upper_bound函数,binary_check函数
个人心得:二分的经典运用,刚开始就是upper_bound可能难以实现一点,还有就是要注意没找到的时候 lower_bound 返回大于等于key的第一个元素的下标.upper_bound 返回大于k ...
- LeetCode Next Closest Time
原题链接在这里:https://leetcode.com/problems/next-closest-time/description/ 题目: Given a time represented in ...
- LeetCode Design Log Storage System
原题链接在这里:https://leetcode.com/problems/design-log-storage-system/description/ 题目: You are given sever ...
- 1.使用Fiddler进行接口测试
1.Fiddler既可以用来抓包数据,亦可以进行接口测试.(可参考我的另一篇博客:https://www.cnblogs.com/android-it/p/9523548.html 进行接口的编写) ...
- 遍历listmap 遍历map
package excel; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import j ...
- Windows2008 R2上完全卸载Oracle操作步骤(转)
最近现场项目,碰到了好几次oracle数据库被损坏,而且无法恢复的问题,没办法,只好卸载重装了.oracle卸载确实麻烦,都是从网上查的方法, 为了方便以后查询,在此就做一下记录. Windows20 ...