原创 劍指Offer二叉樹中和爲某一值的路徑

題目描述: 輸入一棵二叉樹和一個整數,打印出二叉樹中節點值的和爲輸入整數的所有路徑。從樹的根節點開始往下一直到葉節點所經過的節點形成一條路徑。 思路分析: 採用先序遍歷思想,當遇到第1個結點curr,用sum-curr.val

原创 劍指Offer之序列化二叉樹

題目描述: 題目: 請實現兩個函數,分別用來序列化和反序列化二叉樹。 序列化: 將所給二叉樹轉化爲字符串;反序列化:將字符串轉化爲二叉樹 思路分析: 序列化時,可以採用BFS來遍歷,運用輔助隊列來進行層次遍歷。反序列化要先

原创 劍指Offer之數組中數字出現的次數

題目描述: 一個整型數組 nums 裏除兩個數字之外,其他數字都出現了兩次。請寫程序找出這兩個只出現一次的數字。要求時間複雜度是O(n),空間複雜度是O(1)。 示例 1: 輸入:nums = [4,1,4,6] 輸出:[1,6

原创 劍指Offer之構建乘積數組

題目描述: 給定一個數組 A[0,1,…,n-1],請構建一個數組 B[0,1,…,n-1],其中 B 中的元素 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。 題目分析: 剛開

原创 LeetCode之LRU緩存

題目描述: 運用你所掌握的數據結構,設計和實現一個 LRU (最近最少使用) 緩存機制。它應該支持以下操作: 獲取數據 get 和 寫入數據 put 。獲取數據 get(key) - 如果關鍵字 (key) 存在於緩存中,則獲

原创 劍指Offer之從上到下打印二叉樹 III

題目描述: 請實現一個函數按照之字形順序打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右到左的順序打印,第三行再按照從左到右的順序打印,其他行以此類推。 參考代碼: public List<List<Integer

原创 劍指Offer之約瑟夫環問題求解

題目描述: 題目: 0,1,n-1這n個數字排成一個圓圈,從數字0開始,每次從這個圓圈裏刪除第m個數字。求出這個圓圈裏剩下的最後一個數字。 例如,0、1、2、3、4這5個數字組成一個圓圈,從數字0開始每次刪除第3個數字,則刪除的

原创 劍指Offer之隊列的最大值

題目描述: 請定義一個隊列並實現函數 max_value 得到隊列裏的最大值,要求函數max_value、push_back 和 pop_front 的均攤時間複雜度都是O(1)。若隊列爲空,pop_front 和 max_va

原创 劍指Offer之股票的最大利潤

題目描述: 假設把某股票的價格按照時間先後順序存儲在數組中,請問買賣該股票一次可能獲得的最大利潤是多少? 題目分析: 第1天的最大利潤爲:0; 第2天的最大利潤爲:max(前2天前的最大利潤,第2天的價值 - 第2天前的最小

原创 劍指Offer之1~n的整數中1出現的次數

題目描述: 輸入一個整數 n ,求1~n這n個整數的十進制表示中1出現的次數。例如,輸入12,1~12這些整數中包含1 的數字有1、10、11和12,1一共出現了5次。 思路分析: 常規思路是輸入一個整數n,循環判斷每個數字

原创 IDEA導入外部項目時pom文件的依賴無效問題解決

1. 問題描述 在Intellij Idea中導入外部maven項目時,出現瞭如下情況: 鼠標放上面顯示如下: Failed to read artifact descriptor for org.springframewor

原创 程序員必備學習網站

1. 開源項目網站 1. github 網址:https://github.com/ 上面有一些比較好的開源項目,還可以獲得比較好的一些學習資料。 有時訪問比較慢,可以自行百度來提速。 2. gitee 網址:https://g

原创 劍指Offer之二叉搜索樹與雙向鏈表

題目描述: 輸入一棵二叉搜索樹,將該二叉搜索樹轉換成一個排序的循環雙向鏈表。要求不能創建任何新的節點,只能調整樹中節點指針的指向。 我們希望將這個二叉搜索樹轉化爲雙向循環鏈表。鏈表中的每個節點都有一個前驅和後繼指針。雙向循環

原创 劍指Offer之把字符串轉換成整數

題目描述: 寫一個函數 StrToInt,實現把字符串轉換成整數這個功能。不能使用 atoi 或者其他類似的庫函數。 說明: 假設我們的環境只能存儲 32 位大小的有符號整數,那麼其數值範圍爲 [−231, 231 − 1]。

原创 劍指Offer之禮物的最大價值

題目描述: 在一個 m*n 的棋盤的每一格都放有一個禮物,每個禮物都有一定的價值(價值大於 0)。你可以從棋盤的左上角開始拿格子裏的禮物,並每次向右或者向下移動一格、直到到達棋盤的右下角。給定一個棋盤及其上面的禮物的價值,請計算