【剑指offer】09-2跳台阶,C++实现
原创博文,转载请注明出处!
# 本文是牛客网《剑指offer》刷题笔记
1.题目
# 一只青蛙一次可以跳1级台阶,也可以跳2级。求该青蛙跳n级的台阶总共有多少种跳法。
2.思路
# 跳0级,f(0)=0
# 跳1级,一次跳一级一种跳法,f(1)=1
# 跳2级,第一次跳一级和第一次跳两级两种跳法,f(2)=2
# 跳3级,第一次跳一级(剩余两级有f(2)种跳法)和第一次跳两级(剩余一级有f(1)种跳法),f(3)=f(2)+f(1)
# 跳n级,第一次跳一级(剩余n-1级有f(n-1)种跳法)和第一次跳两级(剩余n-2级有f(n-2)种跳法),f(n)=f(n-1)+f(n-2)-----裴波那切数列
3.code
# 返回值--跳n级台阶的跳法
# 参数--n级台阶
 class Solution {
 public:
     int jumpFloor(int number) {
         if(number<=0)
             return 0;
         if(number<3)
             return number;
         int a=1;
         int b=2;
         int c=0;
         for(int i=3;i<=number;++i){
             c=a+b;
             a=b;
             b=c;
         }
         return c;
     }
 };
【剑指offer】09-2跳台阶,C++实现的更多相关文章
- 剑指offer 09变态跳台阶
		一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. java版本: public class Solution { public stati ... 
- 剑指offer——09青蛙跳台阶
		题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 题解: 说俗一点,就是找规律: 不不,首先,我们分析一下,青蛙第一 ... 
- 剑指 Offer 10- II. 青蛙跳台阶问题
		剑指 Offer 10- II. 青蛙跳台阶问题 Offer 10- II 题目描述: 动态规划方程: 循环求余: 复杂度分析: package com.walegarrett.offer; impo ... 
- [剑指Offer]2.变态跳台阶
		题目 一仅仅青蛙一次能够跳上1级台阶,也能够跳上2级--它也能够跳上n级. 求该青蛙跳上一个n级的台阶总共同拥有多少种跳法. 思路 用Fib(n)表示青蛙跳上n阶台阶的跳法数,设定Fib(0) = 1 ... 
- Go语言实现:【剑指offer】变态跳台阶
		该题目来源于牛客网<剑指offer>专题. 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 找规律: 1阶:1种: 2阶:2 ... 
- 剑指OFFER之变态跳台阶(九度OJ1389)
		题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 输入: 输入可能包含多个测试样例,对于每个测试案例, 输入包括一个整数n(1 ... 
- 剑指offer:变态跳台阶
		题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 思路 首先想到的解决方案是根据普通跳台阶题目改编,因为可以跳任意级,所以要 ... 
- [剑指offer] 8+9. 跳台阶+变态跳台阶 (递归 时间复杂度)
		跳台阶是斐波那契数列的一个典型应用,其思路如下: # -*- coding:utf-8 -*- class Solution: def __init__(self): self.value=[0]*5 ... 
- 剑指offer 9-10:青蛙跳台阶与Fibonacii数列
		题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 问题分析 我们将跳法个数y与台阶数n视为一个函数关系,即y=f(n). ... 
随机推荐
- Maven取消编译自动测试
			Maven取消编译自动测试 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins&l ... 
- spring boot将jar包转换成war包发布
			spring boot将jar包转换成war包发布步骤 将<packaging>jar</packaging>修改为<packaging>war</packa ... 
- [转]常见HTTP状态(如200,304,404,503)
			在网站建设的实际应用中,容易出现很多小小的失误,就像mysql当初优化不到位,影响整体网站的浏览效果一样,其实,网站的常规http状态码的表现也是一样,Google无法验证网站几种解决办法,提及到由于 ... 
- linux一键安装nginx脚本
			#!/bin/sh echo "----------------------------------start install nginx ------------------------- ... 
- java 集合操作小结
			Map<String,String> m1=new HashMap<String,String>(); m1.put("zara", "name1 ... 
- js原码工具集
			/* 原生js工具集 */ arr是否包含obj function contains1(arr, obj) { var i = arr.length; while (i--) { if (arr[i] ... 
- js中的内部属性与delete操作符
			本文正式地址:http://www.xiabingbao.com/javascript/2015/08/03/javascript-delete-configurable 在讲解Configurabl ... 
- android之代码混淆
			项目发布之前混淆是必不可少的工作,混淆可以增加别人反编译阅读代码的难度,还可以缩小APK包. Android 中通过ProGuard 来混淆Java代码,仅仅是混淆java代码.它是无法混淆Nativ ... 
- [nodejs]npm国内npm安装nodejs modules终极解决方案
			此方案用于设置代理和修改镜像地址都不能解决问题使用 1.npm root 确认node模块的根文件夹,全局要加-g. osx同样是此命令,先清除缓存. npm cache clean C:\Users ... 
- cocos对象池的使用
			enemy.js cc.Class({ extends: cc.Component, properties: { enemySpeed: 0, //设置加速度 }, //初始化当前节点的y坐标 ini ... 
