近年來算法在大廠面試中幾乎是必問的,特別是字節跳動和快手,其技術三輪面試都會在每輪面試最後出一道算法題,雖然有些公司算法在整個面試分數中佔比不是很高,但是如果算法過了,無疑是加分項。
而算法的複習,不是一蹴而就的,雖說臨陣磨槍不快也光,但是如果平時沒積累,突擊看算法你會發現很耗時,很痛苦的。所以算法需要平時沒事時候做做,汲取其思想。這樣等面試前在稍微複習下就可以了。
本文則列出一些常用的算法題:
- 在有序數組中找出兩個數,使它們的和為 target:二分法Input: numbers={2, 7, 11, 15}, target=9Output: index1=1, index2=2
- 給一個數,求其開方後的值:二分法Input: 16Output: 4Input: 7Output: 2
- 鏈表反轉
- 找出兩個鏈表的交點
- 歸併兩個有序的鏈表
- 判斷鏈表是否存在環,如果有環則找到入環的節點
- 刪除鏈表的倒數第 n 個節點
- 鏈表求和:用棧Input: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)Output: 7 -> 8 -> 0 -> 7
- 給你一顆二叉樹,判斷是否存在路徑和等於給定的一個數
image.png - 判斷一棵樹是否為鏡像樹:遞歸
image.png - 求樹每層節點的平均數:層次遍歷
- 二叉查找樹的最近公共祖先
- 二叉樹的最近公共祖先
關於算法,目前並沒找到比《算法導論》更好的書籍推薦,所以還是推薦它。
閱讀更多 技術聯盟總壇 的文章