筆試面試必會程式碼 以及必看書籍
筆試面試必會程式碼
連結串列:
在連結串列中找到第一個含有某值的節點並刪除該結點
從頭到尾列印連結串列
合併兩個排序連結串列
反轉連結串列
連結串列中倒數第k個結點
O(1)時間刪除連結串列結點
複雜連結串列的複製
兩個連結串列的第一個公共結點
二叉樹:
深度優先遍歷
廣度優先遍歷
求二叉樹的深度和寬度或者面積
重建二叉樹
判斷樹a是不是樹b的子結構
二叉樹映象
從上往下列印二叉樹
二叉樹的後序遍歷序列
二叉樹中和為某一值的路徑
二叉搜尋樹變成雙向連結串列
字串:
Strstr(kmp)
Strcmp
Strcpy
Memcpy
字典樹
線段樹
字尾樹判斷最長重複子串
字串中替換空格
字串的全排列
翻轉單詞順序/左旋轉字串
字串轉化成整數
其他資料結構:
兩個棧實現佇列
兩個佇列實現一個棧
包含min函式的棧
棧的壓入彈出序列
演算法:
Quick sort
二進位制中1的個數
二維陣列中的數的查詢
旋轉陣列中的最小數字
列印1到最大n位數(陣列模擬)
調整陣列順序使奇數位於偶數前面
順時針列印矩陣
陣列中次數超過一半的數字
最小的k個數
陣列排成最小的數
醜數
陣列中第一個只出現一個的字元
陣列中的逆序對
數在陣列中出現的次數
陣列中一個只出現一次的數字(其他都出現兩次)
陣列中兩個只出現一次的數字(其他都出現兩次)
陣列中三個只出現一次的數字(其他都出現兩次)
陣列中和威s額兩個數字/和為s的連續正數序列
N個骰子的點數
撲克牌的順子
圓圈中最後剩下的數字(約瑟夫環)
動態規劃:
求一個序列的最大連續子序列乘積
連續陣列的最大和
C++特性:
不用for while if else switch case 以及 ?: 求1+2+……+n的的和
深拷貝與淺拷貝
設計一個不能被繼承的類
記憶體分配的程式碼
手動修改棧空間
不用sizeof如何判斷作業系統是16位還是32位
大小端
不用+號進行加法運算
不用/號進行除法運算
設計模式:
實現一個單例模式
必看書籍
必看:
《劍指offer》 《程式設計之美》 《程式設計師面試筆試寶典》
選看:
《演算法導論》 《tcp/ip詳解 卷一》 《unix環境高階程式設計》 《演算法導論》 《程式設計珠璣》
c++:
《effective C++》
java:
《effective java》 《java程式設計思想》
python:
《python基礎教程》 《Head First Python》