写在前面:
为了增长一下自己的数据结构能力,也为了面试准备,准备将剑指Offer做一下,并与各位分享,希望各位可以对代码以及思路提提建议,欢迎志同道合者,谢谢。
题目
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法
思路:
这个和前面一篇,思路是差不多的,只不过这个是可以跳多级台阶,也可以先找规律,
一级台阶 1中可能
二级台阶 2种
三级台阶 4种
四级 8中
代码实现
package com.itzmn.offer;
/**
* @Auther: 张梦楠
* @Date: 2018/7/28 11:55
* 简书:https://www.jianshu.com/u/d611be10d1a6
* 码云:https://gitee.com/zhangqiye
* @Description:
*
* 跳几级台阶,就可以跳几级台阶
* 1
* 1
* 1中可能 1
*
* 2
* 1,2
* 2中可能 2
*
* 3
* 1,2,3
* 三个1 1
* 1个1 1个2 2 4
* 1个3 1
*
* 4
* 1,2,3,4
* 4个1 1
* 1个2 2个1 3
* 2个2 1 8
* 1个3 1个1 2
* 1个4 1
*
* 1122
* 5
* 1,2,3,4,5
* 5个1 1
* 1个2 3个1 4
* 2个2 1个1 3 16
* 1个3 2个1 3
* 1个3 1个2 2
* 1个4 1个1 2
* 1个5 1
*/
public class Offer9 {
public static void main(String[] args) {
int i = new Offer9().JumpFloorII(6);
System.out.println(i);
}
public int JumpFloorII(int target) {
if(target <= 0){
return 0;
}
int count = 1;
while (target >= 2){
count *= 2;
target --;
}
return count;
}
}
希望大家可以多多指点,优化一下,
QQ群:552113611









网友评论