文章标题
来源:互联网 发布:linux修改path 编辑:程序博客网 时间:2024/05/09 12:07
/**
* 题目
假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?
样例
比如n=3,1+1+1=1+2=2+1=3,共有3中不同的方法,返回 3
分析:
典型的动态规划问题。
我们假设到达第n级台阶的方法数为f(n),那么最后一步的时候,我们有两种选择,一是选择爬一步,那么这时候的方法数就是f(n-1),另一种选择是选择爬两步,方法数f(n-2).所以通过这个我们就可以得出f(n)的状态转移方程:
f(n)=f(n-1)+f(n-2)
显然看到这里,我们可以利用递归求解这个问题。
*
*/
package leetcode;public class n8upStairs { public static void main(String[] args) { int n=5; System.out.println(fun(n)); int [] a=new int[n+1]; System.out.println(fun2(a,n)); } //递归求解 public static int fun(int n){ if(n==0||n==1){ return 1; } return fun(n-1)+fun(n-2); } //动态方程求解 public static int fun2(int[] a,int n){ if(n==1||n==0){ return 1; } a[0]=1; a[1]=1; for(int i=2;i<=n;i++){ a[i]=a[i-1]+a[i-2]; } return a[n]; }}
0 0
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 呃呃
- 214. Shortest Palindrome
- 深入理解C#:编程技巧总结(一)
- js中关于事件处理函数名后面是否带括号的问题
- 索引合并和组合索引的比较
- 文章标题
- 如何解决Chrome无法打开应用商店
- Solr学习(一)
- Docker之Hadoop普通集群搭建(五)
- 分组交换网络时延、丢包、吞吐量
- 搜索 细聊 Cocoapods 与 Xcode 工程配置
- 需求获取中各种心理如何应对
- 0109
- 笔记4