剑指offer-4:变态条楼梯
##四、变态条楼梯
###题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
###分析
也是斐波那契数列问题,根据上述的思路,可以得到
f(n)=f(n-1)+f(n-2)+f(n-3)+...+f(0),由此就有两种思路解答
(1)接着上式推出=> f(n)=2f(n-1)
(2)通过创建一个数组,进行循环,把f(0)、f(1)、...、f(n-1)的值存入数组中,然后把数组元素的值都相加得到f(n)
###代码
(1)
public class Solution {
public int JumpFloorII(int target) {
if(target==0){
return 0;
}
if(target==1){
return 1;
}
return 2*JumpFloorII(target-1);
}
}
(2)
public class Solution {
public int JumpFloorII(int target) {
if(target <= 2){
return target;
}
int[] dp = new int[target + 1]; // 0 号不使用
dp[1] = 1; //跟普通的 pre2 一个意思
dp[2] = 2; //跟普通的 pre1 一个意思
for (int i = 3; i <= target; i++){
for (int j = i - 1; j >= 1; j--){
dp[i] += dp[j];
}
dp[i]++;
}
return dp[target];
}
}
剑指offer-4:变态条楼梯的更多相关文章
- [剑指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 9. 变态跳台阶 (递归)
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 题目地址 https://www.nowcoder.com/practice/ ...
- 剑指offer:变态跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 思路 首先想到的解决方案是根据普通跳台阶题目改编,因为可以跳任意级,所以要 ...
- 牛客网-《剑指offer》-变态跳台阶
C++ class Solution { public: int jumpFloorII(int n) { <<--n; } }; 推导: 关于本题,前提是n个台阶会有一次n阶的跳法.分析 ...
- 【剑指offer】变态跳台阶
一.题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 二.思路: f(n)=f(n-1)+f(n-2)+...+f(0),f(1) ...
- 剑指offer 09变态跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. java版本: public class Solution { public stati ...
- [剑指Offer] 9.变态跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. [思路1]每个台阶都有跳与不跳两种可能性(最后一个台阶除外),最后一个台阶必 ...
随机推荐
- Spring boot之全局异常捕捉
在一个项目中的异常我们我们都会统一进行处理的,那么如何进行统一进行处理呢? 新建一个类GlobalDefaultExceptionHandler, 在class注解上@ControllerAdvice ...
- 选题 Scrum立会报告+燃尽图 06
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/8678 一.小组情况组长:贺敬文组员:彭思雨 王志文 位军营 杨萍队名:胜 ...
- echarts+json笔记
echart_test.html <!DOCTYPE html> <head> <meta charset="utf-8"> <scrip ...
- Unknown class xxx in Interface Builder file. / NSUnknownKeyException
Error: 2019-11-24 22:16:01.047997+0800 SingleViewDemo[22576:34699748] Unknown class FeedbackCell in ...
- leetcode-easy-trees-102. Binary Tree Level Order Traversal-YES
mycode 98.56% # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x ...
- ColorPicker 颜色选择器
用于颜色选择,支持多种格式. 基础用法 使用 v-model 与 Vue 实例中的一个变量进行双向绑定,绑定的变量需要是字符串类型. <div class="block"&g ...
- OpenStack 虚拟机冷/热迁移的实现原理与代码分析
目录 文章目录 目录 前文列表 冷迁移代码分析(基于 Newton) Nova 冷迁移实现原理 热迁移代码分析 Nova 热迁移实现原理 向 libvirtd 发出 Live Migration 指令 ...
- ES6的对象属性简写
在ES6中允许我们在设置一个对象的属性的时候不指定属性名. 不使用ES6: const name='Ming', age='18', city='Shanghai'; const student ={ ...
- neutron网络服务
一.neutron 介绍: 1. Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需 ...
- 移动手机端通过PC转接实现标签打印的解决方案
废话不多讲,由于种种原因项目上出现了移动手持录入标签信息通过pc端转接实现打印的需求,所以简单研究了一下,本来考虑使用webapi方式实现,但是发现这种方式调用打印机实现自动打印比较困难,所以转而求其 ...