【劍指offer第十題】矩形覆蓋
題目描述
我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法?
n=0,0種;
n=1,1種;
n=2,2種;
n=3,3種;
n=4,5種;
n=5,8種;
又是斐波那契數列 。
public class Solution { public int RectCover(int target) { int first=1; int second=2; int result=0; if(target<3){ return target; } for(int i=3;i<=target;i++){ result=first+second; first=second; second=result; } return result; } }
相關推薦
【劍指offer第十題】矩形覆蓋
題目描述 我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法? n=0,0種; n=1,1種; n=2,2種; n=
【劍指offer第三題】從尾到頭列印連結串列
import java.util.ArrayList; public class Solution { ArrayList list=new ArrayList();//放在遞迴體外面,每次新
【劍指offer第五題】用兩個棧實現佇列
棧的實現是先進後出,佇列是先進先出。思路就是第一個棧的元素按次序出棧,然後第二個棧依次入棧,然後出棧。 import java.util.Stack; public class Solution
【劍指offer第六題】旋轉陣列的最小數
題目描述 把一個數組最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。 輸入一個非減排序的陣列的一個旋轉,輸出旋轉陣列的最小元素。 例如陣列{3,4,5,1,2}為{1,2,3,4,5}的一個旋
【劍指offer第七題】斐波那契數列
題目描述 大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。 n<=39 剛開始覺得輸入為一個數,然後找到這個數在斐波那契數列中的位置
【劍指offer第八題】跳臺階
題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果) 第一級臺階1種,第二級臺階2種,第四級3種,第四級5種,第五級8種
【劍指offer第十二題】數值的整數次方
題目描述 給定一個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。 public class Solution { public dou
【劍指offer第十五題】反轉連結串列
講的很好,有兩種方法 /* public class ListNode { int val; ListNode next = null; ListNode(int val
【劍指offer第十七題】樹的子結構
題目描述 輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構) /** public class TreeNode { int val = 0;
劍指offer第六題【旋轉陣列的最小數字】c++實現
題目描述 把一個數組最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入一個非遞減序列的一個旋轉,輸出旋轉陣列的最小元素。例如陣列{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉,該陣列的最小值為1。 本題給的也算是有序數列,一看就應該和二分沾邊,事實也是這樣。 題目給的是非遞減序列,就是
劍指offer第五題【用兩個棧實現佇列】c++實現
題目描述 用兩個棧來實現一個佇列,完成佇列的Push和Pop操作。 佇列中的元素為int型別。 這個題解法應該比較多 我是用stack1存的push就是正常push,主要改寫pop()方法。 pop()就把stack1全部放入stack2取出棧頂的值然後刪掉,最後再把stack2放到stack1。
劍指offer第3題:從尾到頭打印鏈表
off 輸出結果 pre col 結構 ava image stack 鏈表 方法一:采用棧來存儲,用ArrayList保存。註意題目給出的輸出結果是ArrayList import java.util.ArrayList; import java.util.Sta
劍指Offer--第16題 數值的整數次方
++ 循環 運算 判斷 api 比較 ron color 感覺 第16題 數值的整數次方 題目:給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。 思路 看到有點懵,第一感覺覺得是不是應該考慮0的0次或者負數情況,
棧的壓入 彈出序列(劍指offer第21題)
一、題目描述 輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否可能為該棧的彈出順序。 假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的一個彈出序列, 但4,3,5,1,2就不可能是該壓棧序列的彈出序列。(注意:這
劍指offer第32題JS演算法:輸入一個整數n,求從1到n這n個整數的十進位制表示中1出現的次數。例如輸入12,從1到12這些整數中包含1的數字有1,10,11和12,1一共出現了5次
題目:輸入一個整數n,求從1到n這n個整數的十進位制表示中1出現的次數。例如輸入12,從1到12這些整數中包含1的數字有1,10,11和12,1一共出現了5次 這是我某一次去朋友公司面試試水時出的面試題,結果給我五分鐘我寫了個for迴圈的方法,被狠狠鄙視/哭笑不得 結果回來後好奇就跟同事
陣列中出現次數超過一半的數字(劍指offer第29題)
一、題目描述 陣列中有一個數字出現的次數超過陣列長度的一半,請找出這個數字。 例如輸入一個長度為9的陣列{1,2,3,2,2,2,5,4,2}。由於數字2在陣列中出現了5次, 超過陣列長度的一半,因此輸出2。如果不存在則輸出0 二、解題思路 (方法一):自己想出來的,時
劍指offer第24題(二叉樹中和為某一值的路徑)
題目:輸入一顆二叉樹和一個整數,打印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。 思想:由於本題中的根要在前面,因而我們首先想到的是前序遍歷。當用前序遍歷的方式訪問某一節點時,我們把該節點新增到路徑上,並累加
劍指offer第1題
Q:在一個二維陣列中,每一行都按照從左到右遞增順序排序,每一列都按照從上到下遞增排序。完整一個函式,輸入這樣二維陣列和一個整數,判斷陣列中是否含這個整數。 思路一: /* 矩陣是有序的,從左下角來
劍指offer第六題陣列旋轉
寫在前面,1.這是我目前遇到最有趣的題目涵蓋多種思路,多種解法,也是多種問題。故記錄下來總結一下。半夜看到這道題,首先想到的是二分,後來一看最小,那不是直接遍歷就行,但是T=O(n)。2.左神的課程中提到過,對於二分搜尋,一般大家都是mid=(left+right)/2,其實
劍指offer第三題 從尾到頭列印連結串列
題目描述 輸入一個連結串列,按連結串列值從尾到頭的順序返回一個ArrayList。 思路 1. 從頭開始,每經過一個節點就把它的值儲存下來,最後反轉 # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x