原创 原創 5.9打卡:劍指 offer兩題:調反轉鏈表/合併兩個排序的鏈表

反轉鏈表 題目描述 輸入一個鏈表,反轉鏈表後,輸出新鏈表的表頭。 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x),

原创 6.26打卡:劍指 offer兩題:和爲S的連續正序序列/和爲S的兩個數字

和爲S的連續正序序列 題目描述 小明很喜歡數學,有一天他在做數學作業時,要求計算出9~16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和爲100(至少包括兩個數)。沒多久,他就得到另一組連續

原创 C++內存管理(二)allocator內存分配器

VC6 malloc 內存管理目的是使效率得到更高,空間利用要精簡。 VC6標準分配器之實現 BC5標準分配器實現 G2.9標準分配器   pull_allocate用例 std_alloc運行 分

原创 5.25打卡:劍指 offer兩題:二叉樹的深度/平衡二叉樹

二叉樹的深度 題目描述 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度爲樹的深度。 /* struct TreeNode { int val; struct TreeNo

原创 5.24打卡:劍指 offer兩題:兩個鏈表的第一個公共節點/數字在排序數組中出現的次數

兩個鏈表的第一個公共節點 題目描述 輸入兩個鏈表,找出它們的第一個公共結點。(注意因爲傳入數據是鏈表,所以錯誤測試數據的提示是用其他方式顯示的,保證傳入數據是正確的) 思路:連接兩個鏈表,使兩個指針遍歷的長度相等,遇到第一個相同的節點返回

原创 5.22打卡:劍指 offer兩題:第一次只出現一次的字符/數組中的逆序對

第一次只出現一次的字符 題目描述 在一個字符串(0<=字符串長度<=10000,全部由字母組成)中找到第一個只出現一次的字符,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫).(從0開始計數) 思路:設置兩個map,一個map保存

原创 5.19打卡:劍指 offer兩題:把數組排成最小的數/醜數

把數組排成最小的數 題目描述 輸入一個正整數數組,把數組裏所有數字拼接起來排成一個數,打印能拼接出的所有數字中最小的一個。例如輸入數組{3,32,321},則打印出這三個數字能排成的最小數字爲321323。 思路: 對vector容器內的

原创 5.18打卡:劍指 offer兩題:最小k個數/整數1出現的次數

最小k個數 題目描述 輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。 class Solution { public: void AdjustHeap(

原创 5.17打卡:劍指 offer兩題:數組中出現次數超過一半的數字/連續子數組最大的和

數組中出現次數超過一半的數字 題目描述 數組中有一個數字出現的次數超過數組長度的一半,請找出這個數字。例如輸入一個長度爲9的數組{1,2,3,2,2,2,5,4,2}。由於數字2在數組中出現了5次,超過數組長度的一半,因此輸出2。如果不存

原创 5.16打卡:劍指 offer兩題:二叉搜索樹與雙向鏈表/字符串的排列

二叉搜索樹與雙向鏈表 題目描述 輸入一棵二叉搜索樹,將該二叉搜索樹轉換成一個排序的雙向鏈表。要求不能創建任何新的結點,只能調整樹中結點指針的指向。 思路:通過中序遍歷將節點保存下來,這裏提供一種遞歸合併鏈表的解題思路:遞歸左右子樹,遍歷左

原创 5.13打卡:劍指 offer兩題:複雜鏈表的複製/二叉搜索樹與雙向鏈表

複雜鏈表的複製 題目描述 輸入一個複雜鏈表(每個節點中有節點值,以及兩個指針,一個指向下一個節點,另一個特殊指針random指向一個隨機節點),請對此鏈表進行深拷貝,並返回拷貝後的頭結點。(注意,輸出結果中請不要返回參數中的節點引用,否則

原创 5.13打卡:劍指 offer兩題:二叉搜索樹的後序遍歷序列/二叉樹中和爲某一值的路徑

二叉搜索樹的後序遍歷序列 題目描述 輸入一個非空整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷的結果。如果是則輸出Yes,否則輸出No。假設輸入的數組的任意兩個數字都互不相同。 思路:二叉樹的後序遍歷數組有着什麼的特點? 特點:遍歷的時

原创 5.12打卡:劍指 offer兩題:棧的壓入、彈出序列/從上往下打印二叉樹節點

棧的壓入、彈出序列 題目描述 輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否可能爲該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的一個彈

原创 5.11打卡:劍指 offer兩題:順時針打印矩陣/包含min函數的棧

題目描述 輸入一個矩陣,按照從外向裏以順時針的順序依次打印出每一個數字,例如,如果輸入如下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

原创 原創 5.10打卡:劍指 offer兩題:樹的子結構/二叉樹鏡像

樹的子結構 題目描述 輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構) 思路: 根據題意可知,需要一個函數判斷樹A和樹B是否有相同的結構。顯然是個遞歸程序。可考察遞歸程序3部曲。 遞歸函數的功能: