寫(xiě)在前面:
為了增長(zhǎng)一下自己的數(shù)據(jù)結(jié)構(gòu)能力佃牛,也為了面試準(zhǔn)備淹辞,準(zhǔn)備將劍指Offer做一下,并與各位分享俘侠,希望各位可以對(duì)代碼以及思路提提建議象缀,歡迎志同道合者,謝謝兼贡。
題目
我們可以用21的小矩形橫著或者豎著去覆蓋更大的矩形攻冷。請(qǐng)問(wèn)用n個(gè)21的小矩形無(wú)重疊地覆蓋一個(gè)2*n的大矩形,總共有多少種方法遍希?
思路
先找規(guī)律等曼,我們假設(shè)有幾行矩形,可以用這個(gè)小矩形去覆蓋
可以這樣0 0
也可以這樣0
0
0 0 1種
0 0 2種
0 0 3種
0 0 5種
代碼實(shí)現(xiàn)
package com.itzmn.offer;
/**
* @Auther: 張夢(mèng)楠
* @Date: 2018/7/30 08:44
* 簡(jiǎn)書(shū):http://www.reibang.com/u/d611be10d1a6
* 碼云:https://gitee.com/zhangqiye
* @Description: 使用小矩形覆蓋大矩形
*
* 0 0 1
* 0 0 2
* 0 0 3
* 0 0 5
*
*/
public class Offer10 {
public static void main(String[] args) {
int i = new Offer10().RectCover(4);
System.out.println(i);
}
public int RectCover(int target) {
if (target <= 2 && target >=0){
return target;
}
if (target < 0 ){
return 0;
}
return RectCover(target-1)+RectCover(target-2);
}
}
希望大家可以多多指點(diǎn)凿蒜,優(yōu)化一下禁谦,
QQ群:552113611