原创 劍指offer 二叉搜索樹的後序遍歷序列

題目描述 輸入一個整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷的結果。如果是則輸出Yes,否則輸出No。假設輸入的數組的任意兩個數字都互不相同。   例如,輸入數組a={5,7,6,9,11,10,8} 在後序遍歷中,最後一個是樹的

原创 劍指offer 字符串的排列

題目描述 輸入一個字符串,按字典序打印出該字符串中字符的所有排列。例如輸入字符串abc,則打印出由字符a,b,c所能排列出來的所有字符串abc,acb,bac,bca,cab和cba。 輸入描述: 輸入一個字符串,長度不超過9(可能有字

原创 劍指offer 連續子數組的最大和

題目描述 輸入一個整形數組,數組中的一個或連續多個整數組成的一個子數組。求所有子數組和的最大值。要求時間複雜度爲O(n)。 基礎的動態規劃,以dp(i)表示以i結尾的子數組的最大和,則有: dp(i) = max(dp(i-1)+a[i]

原创 劍指offer 合併兩個排序的鏈表

輸入兩個單調遞增的鏈表,輸出兩個鏈表合成後的鏈表,當然我們需要合成後的鏈表滿足單調不減規則。 思路:先比較鏈表1的頭節點的值和鏈表2的頭節點的值,將小的做爲新鏈表的頭節點,接下來繼續比較。。(遞歸) 例如圖:1比2小,作爲新鏈表的頭部,繼

原创 劍指offer 包含min函數的棧

題目描述 定義棧的數據結構,請在該類型中實現一個能夠得到棧中所含最小元素的min函數(時間複雜度應爲O(1))。   我們的第一反應可能是每次壓入一個新元素進棧時,將棧裏的元素排序,讓最小的元素位於棧頂,這樣能在O(1)時間內,但這樣不能

原创 劍指offer 把二叉樹打印成多行

題目描述 從上到下按層打印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 和層次遍歷類似,爲了把二叉樹的每一行單獨打印到一行裏,需要增加兩個變量,一個變量記錄當前層中還沒有打印的節點數,另一個變量記錄下一層的節點數目。 import

原创 劍指offer 從上往下打印二叉樹

題目描述 從上往下打印出二叉樹的每個節點,同層節點從左至右打印。   就是二叉樹的層次遍歷,用隊列,根節點入隊列,每次打印一個節點時,如果該節點有子節點,則子節點放入隊尾,直到隊列中所有的節點都被打印出來。 import java.u

原创 劍指offer 對稱的二叉樹

題目描述 請實現一個函數,用來判斷一顆二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的鏡像是同樣的,定義其爲對稱的。 可以通過二叉樹的前序遍歷和對稱前序遍歷來判斷二叉樹是否對稱。 對稱前序遍歷:先遍歷右節點,在遍歷左節點。 其實就是利

原创 劍指offer 二叉樹的鏡像

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

原创 劍指offer 樹的子結構

題目描述 輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構) 第一步:在樹A中查找與根節點相等的節點,可以用遞歸。 第二步:判斷A中以某個根節點的子樹是否和樹B具有相同的子樹,同樣可以用遞歸實現。

原创 springboot 讀取配置

方法1:通過Environment的getProperty的方法獲取。 @Autowired private Environment environment; /** * 1.通過Environmen

原创 劍指offer 鏈表中倒數第k個節點

輸入一個鏈表,輸出該鏈表中倒數第k個結點。 最簡單的思路:兩次遍歷,第一次獲取鏈表長度n,第二次遍歷n-k+1步即可。 只遍歷一遍:定義兩個指針,第一個指針走k-1步,第二個不動,從第k步開始,兩個指針同時遍歷,當第一個走到鏈表尾節點,第

原创 劍指offer 反轉鏈表

題目描述 輸入一個鏈表,反轉鏈表後,輸出新鏈表的表頭。 需要定義3個指針,分別指向節點、節點的前一個節點和節點的後一個節點。 /** * @author yuan * @date 2019/2/12 * @descriptio

原创 劍指offer 調整數組順序使奇數位於偶數前面

題目描述 輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。   import java.util.Arrays;

原创 劍指offer 表示數值的字符串

請實現一個函數用來判斷字符串是否表示數值(包括整數和小數)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示數值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3