【書籍記錄】《編程之法》

這本書記錄了一些算法崗面試常見的編程題

因爲博主本人記憶力較差,因此將書中比較好的部分或面試過程中真實遇到過的題目再此標記一下

 

直接使用目錄形式進行重點標記

 

1.字符串

1.3.全排列:回溯遞歸(時間O(n!)空間O(n!))

1.5.迴文判斷:雙指針(時間O(n)空間O(1))

擴展:單鏈表(快慢指針)棧(逆置串,判斷兩個串完全相同)

1.6.最長迴文子串(遍歷每個中心[缺:奇偶需要分開處理])(**Manacher算法[解決奇偶問題])

2.數組

2.1.尋找第K小的數

2.3.尋找和爲定值的多個數(0-1揹包)(**回溯剪枝)

2.6.奇偶排序(雙指針,保持相對位置不變)

2.7.荷蘭國旗(*三指針/三路快排)

2.9.完美洗牌算法(*暫時還沒看)

3.樹

3.3.最近公共祖先LCA(二叉查找樹蠻力法)(**Tarjan離線算法)(**RMQ區間最值查詢問題)

4.查找

4.2.楊氏矩陣的查找(分治)(定位)

4.3.出現次數超過一半的數(排序n/2處O(nlogn))(哈希時間空間O(n))(刪除兩個不同的數O(n))(記錄兩個數)

4.4字符串的查找(KMP)

5.動態規劃

5.1.最大連續乘積子數組

N個數的數組求N-1個數組合乘積最大的一組 https://www.cnblogs.com/zmlctt/p/3866671.html (前綴積後綴積)

5.2.字符串編輯距離

5.3.格子取數問題(走兩次求總和最大,走過的只算一次)

dp[步數s][第一條路到i行][第二條路到j行]=max(dp[s-1][i][j], dp[s-1][i-1][j], dp[s-1][i][j-1], dp[s-1][i-1][j-1]) + M[s][i] + M[s][j]

5.4.交替字符串

6.海量數據處理

6.1.STL容器(序列式容器liststack等關聯式容器hash紅黑樹)

6.2.散列分治

6.3.多層劃分(也是分治)

6.4.MapReduce(歸併排序)(分佈式並行)(鍵值對/具有關聯性)

6.5.外排序(內存外處理,多路歸併)

6.6.位圖(以位爲單位存儲,大大節省空間)

6.7.布隆過濾器(哈希佔空間)(有誤判)

6.8.Trie樹(搜索查詢)

6.11.simhash(**書P200)

7.機器學習

 

 

持續更新

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章