面試高頻算法題

近年來算法在大廠面試中幾乎是必問的,特別是字節跳動和快手,其技術三輪面試都會在每輪面試最後出一道算法題,雖然有些公司算法在整個面試分數中佔比不是很高,但是如果算法過了,無疑是加分項。

而算法的複習,不是一蹴而就的,雖說臨陣磨槍不快也光,但是如果平時沒積累,突擊看算法你會發現很耗時,很痛苦的。所以算法需要平時沒事時候做做,汲取其思想。這樣等面試前在稍微複習下就可以了。

本文則列出一些常用的算法題:

  • 在有序數組中找出兩個數,使它們的和為 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
  • 求樹每層節點的平均數:層次遍歷
  • 二叉查找樹的最近公共祖先
  • 二叉樹的最近公共祖先

關於算法,目前並沒找到比《算法導論》更好的書籍推薦,所以還是推薦它。


分享到:


相關文章: