
前言
一個人,一支筆,一個晚上,一個奇跡,這是學生黨的常規操作,
大學里也同樣有很多奇跡的創造者:每次一到期末考試的前幾個晚上,各個變身“最強大腦”,上知天文,下曉地理,還精通人文……再不濟就是各種縮印,肉眼去辨蠅頭小字,個個大顯神通,不可謂不牛掰,
然后,問題來了,面試該怎么辦?如何在最短的時間內搞定資料結構和演算法,應付面試?

奇跡
真的有演算法速成的秘訣嗎?最快能有多快?
在這里,我分享一下我們交流圈的一個大佬的故事吧,

位元組跳動大家都知道,可以說是靠演算法打出的江山,面試的時候也非常看重應聘者的演算法功底(我甚至聽說還有演算法一票否決的),能進位元組,還能來做經驗分享的,演算法能力肯定是不會差的,
既然大家都說了是以"應付面試"為主,那我們就直奔主題吧,
其實這個大佬演算法這一塊并不擅長,完全是靠著自己的努力硬刷上去的,前前后后花了一個月多月,
下面大致說一下大佬所經歷過的互聯網招聘中對于演算法這塊的考察重點(文末送演算法刷題資料),
其實不管是社招還是校招,考察最多的演算法題型基本都是鏈表、陣列、字串、動態規劃、貪心演算法、深度優先搜索、廣度優先搜索這些,
經歷過幾次面試的朋友不難感覺出來,近幾年以來演算法考察日益漸難,以前刷題100道就ok了,現在直接200+起步了(害,就硬卷唄),
所以,在態度上,演算法這一塊,大家要引起重視呀,不可懈怠,
不過,既然前文已經說了是教大家刷題,那么下面我們就只講重點,下面我會列舉一些經常作為重點考察的演算法題目,
演算法高頻考點
對于貪心演算法,可能會重點考察以下題目:
- 通配符求值
- 跳躍游戲
- 跳躍游戲II
- 分發糖果
- 判斷子序列
- 移掉K位數字
- 分割陣列為連續子序列
對于DFS (深度優先搜索遍歷) ,可能會重點考察以下題目:
- 重建二叉樹
- 島嶼數量
- 二叉樹的最大深度
- 平衡二叉樹
- 二叉樹根節點到葉子節點和為指定值的路徑
- 判斷-棵二叉樹是否為搜索二-叉樹和完全_二叉樹
- 二叉樹根節點到葉子節點的所有路徑和
- 判斷二叉樹是否對稱
- ……(內容比較多,重點都整理在后文的
《演算法刷題寶典》中了)
比如對于鏈表,可能會重點考察以下題目:
- 反轉鏈表
- 鏈表中環的入口節點
- 判斷鏈表中是否有環
- 鏈表中倒數第k個結點
- 鏈表中的節點每k個- -組翻轉
- 合并有序鏈表
- 洗掉鏈表的倒數第n個節點
- ……(后續整理在
《演算法刷題寶典》中了)
對于陣列,可能會重點考察以下題目:
- 螺旋矩陣
- 重建二叉樹
- 陣列中出現次數超過一半的數字
- 矩陣的最小路徑和
- 缺失數字
- 順時針旋轉矩陣
- 加起來和為目標值的組合
- 集合的所有子集
- 陣列中的逆序對
- 旋轉陣列
- 矩陣查找
- ……(全收錄)
對于字串,可能會重點考察以下題目:
- 最長無重復子串.
- 括號序列
- 最長回文子串
- 大數加法
- 反轉字串
- 最小編輯代價
- 將字串轉化為整數
- 驗證IP地址
- 最長公共前綴
- 字串變形
- 通配符匹配
- kmp演算法
- 數字字串轉化成IP地址
- 大數乘法
- 第一個只出現一次的字符
對于動態規劃,可能會重點考察以下題目:
……
(后面看內容好像還挺多,專門整理成了一份PDF,大家感興趣的可以掃碼免費獲取)

演算法學習方法+《演算法刷題寶典》
在刷題之前我建議你看一些書
《漫畫演算法之旅》
如果你之前沒有任何演算法基礎,這邊書很適合你,可以補充資料結構和演算法的基礎知識,像什么是時間復雜度空間復雜度、查找、排序等,
如果你有了一定基礎了,建議你直接跳到最后面的演算法實戰部分,
《劍指 offer》
非常經典的一本書,學演算法的人必刷,但是要注意了,這邊書里面的題目是用 C++寫的,如果你是 Java 開發人員可能會有點影響,但是要記住學習演算法最關鍵的還是解題思路和方法,用什么語言實作是其次的,如果你時間比較多我是建議你用 Java 語言再實作一遍,
《labuladong的演算法小抄》
非常推薦!這是一本很新的書,寫書前作者在 Github 開源了一個專案,主要講解 LeetCode 解題套路,Start 總數排名前40,在書的開頭講解了學習演算法的基本思維和套路,建議看這邊書的同時再配合 leetcode 刷題,療效非常棒!
《演算法導論》
要是不推薦這本書是不是顯得我有點 low 了,這是一本科班出身的同學必看必學的經典大部頭,國外大佬寫的,國內翻譯的經典之作,雖然是經典但是不建議剛入門演算法的同學看,因為看了這本書你可能要放棄演算法了,比較難看懂,建議有了一定基礎再入手這邊書,
如果你覺得看書比較枯燥,可以推薦你看一些極客時間的專欄,不過是收費,但是質量非常高,
《資料結構與演算法之美》
這個專欄是文字+語音,作者是王爭,前 Google 工程師,他采用最適合工程師的學習方式,不拘泥于某一特定編程語言,從實際開發場景出發,由淺入深教你學習資料結構與演算法的方法,幫你搞懂基本概念和核心理論,深入理解演算法精髓,幫你提升使用資料結構和演算法思維解決問題的能力,
《演算法面試通關40講》
這個專欄是視頻,作者是覃超,前Facebook工程師,作者會用白板帶你一步一步解題,層層深入一環扣一環,每一題還會用多種解題方法,我基本看完了,識訓頗多,
leetcode、書和極客專欄可以并行,學練結合,不要光看不練,
演算法刷題寶典

有需要的朋友可以直接掃【
下方的二維碼】找我免費獲取全套資料,
↓↓↓↓↓
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/296635.html
標籤:其他

