【剑指offer】一,跳台阶(java实现)
2015-08-23 22:35
323 查看
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。分析:此题为典型的递归问题,递归问题的典型解法就是找到递推公式和边界条件。青蛙跳上第N阶前可能在第N-1,N-2 阶得到递推公式f(n)=f(n-1)+f(n-2)。考虑边界条件当n为1时,有1种方法。当N为2时有两种方法。代码如下:
public class Solution { public int JumpFloor(int target) { if(target<3){ return target ; }
else return f(n-1)+f(n-2) ;
} } 考虑时间效率,采用动态规划进行优化
public class Solution { public int JumpFloor(int target) { if(target<3){ return target ; } int temp1 = 1 ,temp2 = 2 ; int res=0 ; for(int i = 3 ;i <= target ;i++){ res = temp1+temp2 ; temp1 = temp2 ; temp2 = res ; } return res ; } }
写这个系列主要时因为最近找工作在刷算法。把自己的结果分享出来给大家,也方便自己以后温习。
相关文章推荐
- 学习JS(6)
- html事例
- 24.Swap Nodes in Pairs
- css盒子模型
- JavaScript(js)
- javascript学习—理解addLoadEvent函数
- bootstrap
- jQuery--编辑表格
- 【javascript】箭头函数
- struct file和struct inode
- STM32F4 -- How to use the DMA burst feature
- Reverse Nodes in k-Group
- 32 bit hardware buffers are not allowed in OpenGL ES
- 用JavaScript实现表单按回车自动提交
- web前端:css
- 纯CSS制作圆角矩形框知识总结
- PNP管理器简析--基于ReactOS0.33
- H5移动前端性能优化
- String 和 StringBuffer区别
- CSS初识