原创 劍指offer 第十九題 順時針打印矩陣

題目描述 輸入一個矩陣,按照從外向裏以順時針的順序依次打印出每一個數字,例如,如果輸入如下4 X 4矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次打印出數字1,2,3,4,8,12,16,15

原创 劍指offer第十八題 源二叉樹左右交換 java

題目描述 操作給定的二叉樹,將其變換爲源二叉樹的鏡像。 輸入描述: 二叉樹的鏡像定義:源二叉樹 8 / \ 6 10 / \ / \ 5 7 9 11

原创 劍指offer 第十五題 反轉鏈表

題目描述 輸入一個鏈表,反轉鏈表後,輸出新鏈表的表頭。 思路:        新建一個空鏈表,然後遍歷原來的鏈表,當鏈子不空的時候,就新建一個鏈子,把新鏈表放在後面,然後再回到新鏈表的表頭 /* public class ListNod

原创 劍指offer 第十六題 合併兩個排序的鏈表

題目描述 輸入兩個單調遞增的鏈表,輸出兩個鏈表合成後的鏈表,當然我們需要合成後的鏈表滿足單調不減規則。   思路:         好像是兩個數組,一個一個比較,然後加上去,最後判斷要是還有剩餘,直接加到最後面就行了 /* public

原创 劍指offer第十七題 數的子結構 java

題目描述 輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構) 參考了別人的代碼,後序會加上自己的代碼 但是借鑑了就借鑑了。貼上鍊接https://blog.csdn.net/weixin_40928

原创 劍指offer 第十三題 調整數組順序,使奇數位於偶數前面 java

題目描述 輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 分析:        for循環一遍,記錄下奇數,然後再循

原创 劍指offer第十四題 鏈表中倒數第k個節點 java

題目描述 輸入一個鏈表,輸出該鏈表中倒數第k個結點。 分析:         雙指針法,讓一個指針先走k補,當這個指針走到鏈表末尾的時候,那麼當前指針就是倒數第k個 /* public class ListNode { int

原创 劍指offer 第十二題 數值的整數次方

題目描述 給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。 分析:           就是實現power的整數次冪功能 public class Solution {

原创 劍指offer第六題 旋轉數組中的最小數字

題目描述 把一個數組最開始的若干個元素搬到數組的末尾,我們稱之爲數組的旋轉。 輸入一個非減排序的數組的一個旋轉,輸出旋轉數組的最小元素。 例如數組{3,4,5,1,2}爲{1,2,3,4,5}的一個旋轉,該數組的最小值爲1。 NOTE:給

原创 劍指offer第四題 前序和中序重建二叉樹

題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹

原创 劍指offer第八題 跳臺階 java

題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 分析:           從不同的1 ,2選擇入手,然後排列組合           舉例:5      

原创 劍指offer第九題 跳臺階2 java

題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 一個n級臺階,總共有n-1個空隙,那麼選或者不選,都會影響到結果,那麼就是所有的可能性 public class

原创 劍指offer第十一題 二進制中1的個數

  題目描述 輸入一個整數,輸出該數二進制表示中1的個數。其中負數用補碼錶示。 思路:         0:返回0;         正數:就使用一個長度爲32的數組(最高位默認爲0)來記錄其中出現1出現的次數         負數:補碼

原创 劍指offer第七題 斐波那契數列 Fibonacci java

  大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項爲0,第一項爲1)。 n<=39 第一種解法:遞歸寫法 public class Solution{ public int Fi

原创 劍指offer 第十題 矩形覆蓋 java

題目描述 我們可以用2*1的小矩形橫着或者豎着去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法? 思路:        n爲奇數的話,那麼多一個豎着的小矩形        n爲偶數的話,這時候就是