原创 《劍指offer》:[62]序列化二叉樹

題目:請實現兩個函數,分別來序列化和反序列化二叉樹。 方案分析:我們知道通過二叉樹的中序和任何一個前或者後續遍歷都可以反序列化一棵二叉樹,但是這樣做有一個缺點就是,序列化的數據不能有重複的數據,否則會出錯。另外,在反序列化時,需要知道中序

原创 《劍指offer》:[61]按之字形順序打印二叉樹

題目:請實現一個函數按照之字形順序打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右到左的順序打印,第三層再按照從左到右打印,其他行以此類推。例如:按之字形順序打印二叉樹的結果如下圖: 打印結果: 1 3,2 4,5,6,7 1

原创 大話設計模式:工廠模式

有了前面介紹的簡單工廠模式,爲什麼又會出來一個工廠模式呢?它們之間的區別又在哪裏?工廠模式的精髓又在哪裏?工廠方法模式: 定義一個用於創建對象的接口

原创 《劍指offer》:[53]正則表達式匹配

題目:請實現一個函數用來匹配包括’.’和’‘的正則表達式。模式中的字符’.’表示任意一個字符,而’‘表示它前面的字符可以出現任意次(包含0次)。在本題中,匹配是指字符串的所有字符匹配整個模式。例如,字符串”aaa”與模式”a.a”和”ab

原创 《劍指offer》:[63]二叉搜索樹的第K個結點

題目:給定一棵二叉搜索樹,請找出其中的第K大的結點。例如在下圖中的二叉樹,第四個結點就是:5. 分析:這個題目比較簡單,得到二叉樹的第K個值,因爲我們知道中序遍歷一棵二叉排序樹得到的就是有序的序列。所以我們採用中序遍歷和一個計數器cou

原创 數字之魅:尋找發帖“水王”

題目背景:Tango是微軟亞洲研究院的一個試驗項目。研究院的員工和實習生們都很喜歡在Tango上面交流灌水。傳說,Tango有一大“水王”,他不但喜歡發貼,還會回覆其他ID發的每個帖子。坊間風聞該“水王”發帖數目超過了帖子總數的一半。如果

原创 《劍指offer》:[57]刪除鏈表中重複的結點

題目:在一個排序的鏈表中,如何刪除重複的結點?例如,在圖a中重複結點被刪除之後,鏈表如圖b所示。 方案:這個題應該說是比較簡單的,不在贅述,主要利用三個指針,就可以解決這個問題。 具體實現代碼:#include <iostream> u

原创 數字之魅:尋找數組中的最大值和最小值

數組是最簡單的一種數據結構。我們經常碰到的一個基本問題,就是尋找整個數組中最大的數,或者最小的數。這時,我們都會掃描一遍數組,把最大(最小)的數找出來。如果我們需要同時找出最大和最小的數呢? 對於一個由N個整數組成的數組,需要比較多少次才

原创 數據庫索引《二》

目錄 覆蓋索引 最左前綴原則 索引下推 思考及解答 設計表結構或者是創建索引的時候,我們的目標就是在滿足當前需求的情況下,減少對數據庫的訪問,減少資源的消耗。 //表結構 USER_TABLE | CREATE TABLE `USER_

原创 線程的創建及線程池

  目錄 線程的創建 繼承Thread類 實現Runnable接口 實現Callable接口 線程池 執行流程 線程池排隊策略 拒絕策略 Executors的四種線程池 CompletionService 小結 前面講了線程的六種狀態及常

原创 java類加載及雙親委派機制

目錄 類加載流程  1、加載 2、驗證 3、準備 4、解析 5、初始化 雙親委派模型 常見異常 NoClassDefFoundError ClassNotFoundException ClassCastException 線程上下文類加載

原创 數據庫索引《一》

目錄 索引的類型   回表 索引維護 思考與解答    索引是存儲引擎實現的,沒有統一的標準,不同的引擎的索引工作方式不一樣。常見的三種索引結構:哈希表/有序數組/搜索樹。 哈希表 數據結構:數組+鏈表的方式; 優點:等值查詢的速度比較

原创 數字之魅:子數組之和的最大值[二維]+[三維]

題目:如何求出一個二維數組中的最大子數組之和。方案一:暴力破解-枚舉法。對於一個二維數組我們列舉出每一個子數組值的大小,然後進行比較,這樣就可以得到最大的和了。其時間複雜度爲:O(N*N*M*M*Sum的時間複雜度)[N表示行數,M表示列

原创 jvm垃圾回收機制 一

      目錄 一、回收什麼? 二、何時回收? 引用計數法 根搜索算法-GC-root算法 引用 強引用 軟引用 弱引用 虛引用 垃圾回收條件 方法區的回收 三、如何回收? 垃圾回收算法 1.標記-複製 2.標記-清理 3.標記-整理

原创 jvm垃圾回收機制 二

     上一節主要介紹了新生代的 Serial  / PraNew / Parallel Scavenge 三種垃圾回收方法和老年代的serial old 和 paralle old收集器,本節主要介紹CMS和G1垃圾收集器。 目錄 C