用两种方法(递归和DP)实现了青蛙跳台阶
做了这道题目:
https://www.nowcoder.net/practice/8c82a5b80378478f9484d87d1c5f12a4?tpId=13&tqId=11161&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
题目本身比较简单,先用的递归来做的:
int jumpFloor2(int number) {
        if (number < ) return ;
        if (number < ) return ;
        return jumpFloor(number-) + jumpFloor(number-);
    }
耗时如下:

然后用的DP做的:
int jumpFloor2(int number) {
        if (number < ) return ;
        if (number < ) return ;
        int jump2 = ;
        int jump1 = ;
        for (int i=; i<=number; i++) {
            int tmp = jump2 + jump1;
            jump2 = jump1;
            jump1 = tmp;
        }
        return jump1;
    }
耗时如下:

的确提高了很多倍啊!
用两种方法(递归和DP)实现了青蛙跳台阶的更多相关文章
- python语言实现阶乘的两种方法---递归和迭代
		
阶乘的递归实现,代码如下: def factorial(n): if n==1: return 1 else: return n*factorial(n-1) number = int(input(& ...
 - vue里使用element饿了么的el-menu+vue-router实现路由跳转的两种方法
		
最近准备写一个echarts的可视化展示案例,首先用vue-cli3创建了一个项目(好像vue-cli4也出来,感觉变化不大,就没升级了) 然后,开始配置路由↓下面是我的router.js文件 imp ...
 - Hadoop基础-HDFS递归列出文件系统-FileStatus与listFiles两种方法
		
Hadoop基础-HDFS递归列出文件系统-FileStatus与listFiles两种方法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. fs.listFiles方法,返回Loc ...
 - C#统计给定的文本中字符出现的次数,使用循环和递归两种方法
		
前几天看了一个.net程序员面试题目,题目是”统计给定的文本中字符出现的次数,使用循环和递归两种方法“. 下面是我对这个题目的解法: 1.使用循环: /// <summary> /// 使 ...
 - 用Python计算幂的两种方法,非递归和递归法
		
用Python计算幂的两种方法: #coding:utf-8 #计算幂的两种方法.py #1.常规方法利用函数 #不使用递归计算幂的方法 """ def power(x, ...
 - HDU 1160 排序或者通过最短路两种方法解决
		
题目大意: 给定一堆点,具有x,y两个值 找到一组最多的序列,保证点由前到后,x严格上升,y严格下降,并把最大的数目和这一组根据点的编号输出来 这里用两种方法来求解: 1. 我们可以一开始就将数组根据 ...
 - jquery-12 折叠面板如何实现(两种方法)
		
jquery-12 折叠面板如何实现(两种方法) 一.总结 一句话总结:1.根据点击次数来判断显示还是隐藏,用data方法保证每个元素一个点击次数:2.找到元素的下一个,然后toggle实现显示隐藏. ...
 - 两种方法直接删除数组中特定值的项(JavaScript)
		
一.问题详情: 直接删除意为原数组需要被改变,而不是得到另一个数组. 二.JavaScript实现 (一)巧用数组的push( ).shift( )方法 function del(arr,num) { ...
 - windows下获取IP地址的两种方法
		
windows下获取IP地址的两种方法: 一种可以获取IPv4和IPv6,但是需要WSAStartup: 一种只能取到IPv4,但是不需要WSAStartup: 如下: 方法一:(可以获取IPv4和I ...
 - android 之 启动画面的两种方法
		
现在,当我们打开任意的一个app时,其中的大部分都会显示一个启动界面,展示本公司的logo和当前的版本,有的则直接把广告放到了上面.启动画面的可以分为两种设置方式:一种是两个Activity实现,和一 ...
 
随机推荐
- 240 Search a 2D Matrix II 搜索二维矩阵 II
			
编写一个高效的算法来搜索 m x n 矩阵中的一个目标值.该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上到下升序排列.例如,考虑下面的矩阵:[ [1, 4, 7 ...
 - 无法连接到已配置的web服务器
			
问题:如题,asp.net WebForm的项目,在vs中选择aspx文件在浏览器中查看时候回报该错误. 网上最多的解决方案是防火墙的原因,说关闭防火墙就可以了.但问题是我另一个项目没有问题啊,所以不 ...
 - Spring-Aop的两种代理方式
			
Spring-Aop两种代理方式: 1.JDK动态代理:用于目标类实现了接口: 2.Cglib动态代理:用于目标类没有实现接口: spring会依据目标类是否实现接口来选择使用哪种代理方式(目标类:相 ...
 - cookie的应用——浏览记录
			
实体类 package entity; public class Product { private String id; private String proName; private String ...
 - struts2配置文件加载顺序
			
struts2配置文件加载顺序: struts-default.xml/ struts-plugin.xml/ struts.xml/ struts.properties/ web.xml
 - 并发编程学习笔记(14)----ThreadPoolExecutor(线程池)的使用及原理
			
1. 概述 1.1 什么是线程池 与jdbc连接池类似,在创建线程池或销毁线程时,会消耗大量的系统资源,因此在java中提出了线程池的概念,预先创建好固定数量的线程,当有任务需要线程去执行时,不用再去 ...
 - RabbitMQ系列(五)--高级特性
			
在上一篇文章讲解MQ消息可靠性投递和幂等性中有提到confirm机制的重要性,现在更相信的说明一下 一.Confirm机制 Confirm就是消息确认,当Producer发送消息,如果Broker收到 ...
 - MYEclipse Available Memory is low 警告 解决方法
			
1, 设置Eclipse内存使用情况 修改eclipse根目录下的eclipse.ini文件 -vmargs //虚拟机设置 -Xms40m -Xmx256m -XX:PermSize=128M ...
 - HTML5网页如何调用浏览器APP的微信分享功能?
			
if (/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Al ...
 - [HNOI]2003 消防局的建立
			
消防局的建立 本题地址:http://www.luogu.org/problem/show?pid=2279 题目描述 2020年,人类在火星上建立了一个庞大的基地群,总共有n个基地.起初为了节约材料 ...