開(kāi)篇先引入一位面試官的對(duì)于面試者的要求:

前美團(tuán)資深工程師 Windy
作為面試官,我比較看中候選人的行業(yè)背景、專業(yè)技能還有一些軟素質(zhì)。具體來(lái)說(shuō):
行業(yè)背景就是上一份工作所在的領(lǐng)域比如電商、社交等;
專業(yè)技能的話主要是語(yǔ)言基礎(chǔ),高并發(fā)、分布式、中間件等知識(shí),以及排查問(wèn)題、運(yùn)維、設(shè)計(jì)的能力。這里面最重要的是編程能力,針對(duì)高級(jí)崗位還要考察架構(gòu)能力。
軟素質(zhì)包括候選人的溝通能力、項(xiàng)目管理能力和領(lǐng)導(dǎo)力等。
作為面試官,在面試過(guò)程我會(huì)用筆試題的形式考察候選人的思維邏輯能力,通??疾斓木唧w知識(shí)點(diǎn)包括鏈表、樹(shù)、排序、二分查找等,需要候選人能夠分析出不同算法的時(shí)間復(fù)雜度和空間復(fù)雜度。題目我會(huì)選擇 LeetCode 上簡(jiǎn)單到中等難度的題目,??嫉挠校?/p>
單鏈表翻轉(zhuǎn)(遞歸或者循環(huán))
樹(shù)的前中后序遍歷
動(dòng)態(tài)規(guī)劃(爬樓梯以及變形問(wèn)題、斐波那契數(shù)列、股票問(wèn)題)
二分查找(以及變形)
排序(快排)
通過(guò)算法面試題的考察,我希望候選人不光可以展示編程能力,還可以通過(guò)詳細(xì)了解題目,展示自己的溝通能力和推演能力(如何構(gòu)建題目的思路)。最關(guān)鍵的編程能力,候選人可以展示自己對(duì)于問(wèn)題邊界的思考,比較不同方法的性能和效率,給出解決問(wèn)題的多種方法。
我的精選算法面試題是:搜索二維矩陣
編寫(xiě)一個(gè)高效的算法來(lái)判斷 m x n 矩陣中,是否存在一個(gè)目標(biāo)值。該矩陣具有如下特性:
每行中的整數(shù)從左到右按升序排列。
每行的第一個(gè)整數(shù)大于前一行的最后一個(gè)整數(shù)。
示例 1:
輸入:
matrix = [
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
target = 3
輸出: true
示例 2:
輸入:
matrix = [
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
target = 13
輸出: false
面試重點(diǎn)—算法
2020年,面試過(guò)大廠的朋友會(huì)發(fā)現(xiàn),所有的大廠都在問(wèn)算法,根據(jù)目前掌握的信息來(lái)推測(cè),算法將會(huì)是一大風(fēng)口,掌握算法的人能夠輕易碾壓不會(huì)算法的人拿到offer!
算法未來(lái)不僅僅是大廠面試必回,中小廠面試也必定會(huì)問(wèn)算法,這是一種趨勢(shì)!
為了幫助大家提高自己的算法能力,為大家搜羅整理到了幾份非常nice的算法筆記,限于平臺(tái)
第一份
這份筆記內(nèi)容全部都是純手打,排序算法/數(shù)據(jù)結(jié)構(gòu)的代碼可能不是最優(yōu)解,代碼的實(shí)現(xiàn)都是以比較容易理解的方式去寫(xiě)的。幾乎每句代碼都有對(duì)應(yīng)的注釋,應(yīng)該是能看懂的。


內(nèi)容簡(jiǎn)述

二、選擇排序


四、快速排序

五、歸并排序

六、希爾排序

七、堆排序

八、基數(shù)排序(桶排序)

九、遞歸

十、鏈表

十二、隊(duì)列

十三、二叉樹(shù)
