国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁 > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

LeetCode面試官泄露:14個(gè)模板覆蓋95%算法題

0
分享至


北美大廠算法面試有個(gè)公開的秘密:有人刷了400題掛掉Google,有人只練80題拿到5個(gè)offer。差距不在題量,在是否提前看過"考綱"。

LeetCode現(xiàn)存3000+題目,但面試高頻考點(diǎn)高度收斂。前Google工程師、現(xiàn)Meta技術(shù)面試官整理了一份內(nèi)部流傳的模式清單——14個(gè)代碼模板,覆蓋95%的面試題型。這不是投機(jī)取巧,是把O(n2)的暴力解法壓縮成O(n)的系統(tǒng)工程。

雙指針:從兩頭往中間夾

數(shù)組或字符串里找配對(duì)、比大小、做分割,第一反應(yīng)應(yīng)該是雙指針。left從0出發(fā),right從末尾往回走,每次循環(huán)干掉一半搜索空間。

經(jīng)典場(chǎng)景:Two Sum(有序數(shù)組版)、盛最多水的容器、驗(yàn)證回文串、三數(shù)之和。模板核心就五行——初始化、循環(huán)、比較、收縮左邊界、收縮右邊界。

關(guān)鍵認(rèn)知:雙指針的本質(zhì)是用空間換時(shí)間的反向操作。不建哈希表,用兩個(gè)游標(biāo)消除內(nèi)層循環(huán),把平方復(fù)雜度壓成線性。

一個(gè)細(xì)節(jié):三數(shù)之和的去重邏輯容易寫錯(cuò)。排序后,當(dāng)left右移時(shí)如果下一個(gè)數(shù)和當(dāng)前相同,要跳過;right同理。這個(gè)去重比算法本身更容易掛面試。

滑動(dòng)窗口:子數(shù)組問題的通用框架

求"滿足某條件的連續(xù)子數(shù)組",比如最大和、最長(zhǎng)無重復(fù)字符、最小覆蓋子串——全是滑動(dòng)窗口的領(lǐng)地。

模板分兩種。固定窗口大?。河疫呥M(jìn)一個(gè),左邊出一個(gè),保持窗口恒定。可變窗口:右邊一直擴(kuò),直到違反約束,再?gòu)淖筮吺湛s到合法。

代碼骨架是四層嵌套:外層遍歷右邊界、更新窗口狀態(tài)、內(nèi)層while收縮左邊界、更新結(jié)果。窗口狀態(tài)通常用哈希表或數(shù)組計(jì)數(shù),面試時(shí)先寫偽代碼確認(rèn)面試官要的是固定還是可變。

高頻翻車點(diǎn):Minimum Window Substring要求覆蓋所有目標(biāo)字符,不是任意k個(gè)。很多候選人把"至少k個(gè)不同字符"和"覆蓋目標(biāo)串"搞混,20分鐘直接歸零。

快慢指針:鏈表問題的作弊器

鏈表沒法隨機(jī)訪問,但快慢指針給了你一個(gè)"偽二分"的能力。slow走一步,fast走兩步,fast到終點(diǎn)時(shí)slow正好在中點(diǎn)。

判環(huán)、找中點(diǎn)、檢測(cè)快樂數(shù),同一個(gè)模板改兩行就能用。判環(huán)時(shí)相遇即存在環(huán);找中點(diǎn)時(shí)返回slow;快樂數(shù)把數(shù)字替換成各位平方和,重復(fù)即環(huán)。

Meta去年秋招的follow-up:如果鏈表有環(huán),找到環(huán)的入口點(diǎn)。這需要數(shù)學(xué)推導(dǎo)——相遇后把slow拉回head,同步走再次相遇即為入口。能現(xiàn)場(chǎng)推出來的,評(píng)級(jí)直接升一檔。

區(qū)間合并:日程表沖突的標(biāo)準(zhǔn)解法

會(huì)議室預(yù)定、日程合并、區(qū)間插入,本質(zhì)都是同一道題:先按起點(diǎn)排序,然后遍歷,要么合并(當(dāng)前起點(diǎn)≤上一個(gè)終點(diǎn)),要么新開區(qū)間。

Meeting Rooms II的變種問"最多需要幾間會(huì)議室"——用最小堆存每個(gè)會(huì)議的結(jié)束時(shí)間,新會(huì)議開始時(shí)間≥堆頂則復(fù)用房間,否則開新房間。堆的大小就是答案。

這個(gè)模式在Google面試出現(xiàn)頻率極高,因?yàn)楹蛯?shí)際系統(tǒng)設(shè)計(jì)的負(fù)載均衡問題同源。能講出"這相當(dāng)于找最大并發(fā)數(shù)"的候選人,會(huì)被標(biāo)記為"有系統(tǒng)思維"。


循環(huán)排序:原地排序的野路子

數(shù)組數(shù)值范圍在1到n之間,要求O(n)時(shí)間、O(1)空間——循環(huán)排序是唯一解。把每個(gè)數(shù)放到它該去的位置(nums[i]應(yīng)該放在索引nums[i]-1處),放不下的就是缺失或重復(fù)的。

Find the Missing Number、Find the Duplicate Number、Find All Duplicates,全是這個(gè)套路。代碼模板是while循環(huán):當(dāng)前數(shù)不在正確位置,就和正確位置的數(shù)交換。

易錯(cuò)點(diǎn):交換后不能i++,要繼續(xù)檢查換過來的數(shù)。很多人慣性寫i++,漏掉連鎖反應(yīng),調(diào)試半小時(shí)。

鏈表反轉(zhuǎn):遞歸迭代的兩種人格

反轉(zhuǎn)鏈表是面試的"hello world",但follow-up能無限深挖。K個(gè)一組反轉(zhuǎn)、部分反轉(zhuǎn)、兩兩交換,全是同一模板的變體。

迭代版:三個(gè)指針prev、curr、next,逐節(jié)點(diǎn)后移。遞歸版:遞歸到末尾,返回時(shí)逐個(gè)翻轉(zhuǎn)指向。遞歸版代碼更短,但空間O(n),面試官會(huì)問能不能優(yōu)化。

Amazon的變態(tài)考法:用O(1)空間反轉(zhuǎn)m到n之間的部分。需要先用雙指針走到m-1位置,再套用標(biāo)準(zhǔn)反轉(zhuǎn)模板,最后拼接三段。能一次寫對(duì)的,近兩年內(nèi)見過的不超過10個(gè)。

樹的雙遍歷:前序+中序/后序重建

給兩種遍歷序列重建二叉樹,是考察遞歸思維的試金石。前序+中序、后序+中序可以唯一確定樹,前序+后序不行(除非滿二叉樹)。

模板核心:前序/后序的第一個(gè)/最后一個(gè)元素是根,在中序里找到根的位置,左邊是左子樹,右邊是右子樹。遞歸構(gòu)建,用哈希表存中序索引避免重復(fù)掃描。

時(shí)間復(fù)雜度O(n),空間O(n)存哈希表。面試官常問的優(yōu)化:如果數(shù)組很大,能不能流式處理?答案是只能預(yù)處理,因?yàn)楸仨氈雷笥易訕涞倪吔绮拍苓f歸。

層級(jí)遍歷:BFS的隊(duì)列美學(xué)

樹的按層打印、找最淺葉子、連接同層節(jié)點(diǎn),全是BFS的領(lǐng)地。用隊(duì)列,每層記錄size,內(nèi)層循環(huán)處理完當(dāng)前層再進(jìn)下一層。

Binary Tree Level Order Traversal的變形:之字形打印、找每行最大值、判斷完全二叉樹。模板不變,變的是內(nèi)層循環(huán)里對(duì)節(jié)點(diǎn)的操作。

Google的陷阱題:用DFS實(shí)現(xiàn)層級(jí)遍歷。需要記錄深度,按深度把節(jié)點(diǎn)塞進(jìn)結(jié)果數(shù)組的對(duì)應(yīng)位置。能切換兩種思路的,說明理解了遍歷的本質(zhì)區(qū)別。

子集模式:回溯的暴力美學(xué)

求所有子集、排列、組合,回溯是通用解。模板是遞歸函數(shù)里:做選擇、遞歸、撤銷選擇。子集問題選或不選當(dāng)前元素,排列問題選哪個(gè)位置放當(dāng)前元素。

去重是難點(diǎn)。有重復(fù)元素時(shí),先排序,然后跳過同一層已經(jīng)用過的相同元素。這個(gè)"同一層"和"同一支"的區(qū)別,90%的候選人講不清楚。

Subset Sum問是否存在和為target的子集,可以用回溯剪枝,也可以用動(dòng)態(tài)規(guī)劃。面試時(shí)先問數(shù)據(jù)范圍,n≤20用回溯,n≥100必須用DP,選錯(cuò)直接超時(shí)。


二分變種:找邊界、找旋轉(zhuǎn)、找答案

二分查找不只是找目標(biāo)值。找第一個(gè)≥target的位置、找最后一個(gè)≤target的位置、找旋轉(zhuǎn)數(shù)組的最小值、找峰值元素——全是二分模板的變形。

核心不變:確定搜索區(qū)間[left, right]還是[left, right),確定中間點(diǎn)比較后收縮哪邊,確定終止條件和返回值。旋轉(zhuǎn)數(shù)組的關(guān)鍵是判斷哪半邊有序,然后在有序半邊判斷target是否在范圍內(nèi)。

Search in Rotated Sorted Array的follow-up:有重復(fù)元素怎么辦?最壞情況退化成O(n),但平均還是O(log n)。能分析出這個(gè)的,算法基礎(chǔ)分拿滿。

拓?fù)渑判颍河邢驁D的依賴解析

課程表、編譯順序、任務(wù)調(diào)度,全是拓?fù)渑判?。Kahn算法(BFS)或DFS記錄后序遍歷,兩種實(shí)現(xiàn)都要會(huì)。

Kahn算法:計(jì)算入度,入度為0的入隊(duì),逐個(gè)彈出并減少鄰居入度。DFS版:遞歸訪問所有鄰居,訪問完把當(dāng)前節(jié)點(diǎn)壓棧,最后逆序就是拓?fù)湫颉?/p>

檢測(cè)環(huán)是隱藏考點(diǎn)。Kahn算法最后如果還有節(jié)點(diǎn)沒訪問,說明有環(huán);DFS版用三色標(biāo)記(未訪問/訪問中/已訪問),遇到訪問中節(jié)點(diǎn)即環(huán)。

并查集:連通性的O(α(n))解法

朋友圈、省份數(shù)量、冗余連接、島嶼數(shù)量II——?jiǎng)討B(tài)連通性問題,并查集是標(biāo)準(zhǔn)答案。路徑壓縮+按秩合并,時(shí)間復(fù)雜度接近常數(shù)。

模板四件套:find(帶路徑壓縮)、union(按秩合并)、初始化、計(jì)數(shù)。面試時(shí)先寫樸素版,面試官要求優(yōu)化再補(bǔ)上壓縮和合并。

LeetCode 305島嶼數(shù)量II的trick:從全是水的網(wǎng)格逐步添加陸地,每添加一個(gè)檢查四鄰居,用并查集維護(hù)連通分量數(shù)。能想到并查集的,已經(jīng)跑贏80%的候選人。

前綴和:子數(shù)組求和的降維打擊

求和為k的子數(shù)組個(gè)數(shù)、和為k的最大長(zhǎng)度、二維區(qū)域和檢索——前綴和把區(qū)間查詢變成O(1)。

一維:presum[i] = sum(nums[0..i-1]),區(qū)間和= presum[j+1] - presum[i]。二維:presum[i][j]存左上角(0,0)到(i-1,j-1)的和,容斥原理算任意矩形。

和為k的子數(shù)組個(gè)數(shù),用哈希表存前綴和出現(xiàn)次數(shù),當(dāng)前前綴和-k的次數(shù)就是以當(dāng)前結(jié)尾的合法子數(shù)組數(shù)。這個(gè)"當(dāng)前-目標(biāo)=歷史"的思路,和兩數(shù)之和的哈希表解法同源。

動(dòng)態(tài)規(guī)劃:最后一塊拼圖

DP是獨(dú)立大類,但面試高頻的其實(shí)就幾種:線性DP(爬樓梯、打家劫舍)、區(qū)間DP(石子合并、最長(zhǎng)回文子序列)、背包DP(01背包、完全背包)、樹形DP(打家劫舍III)、狀態(tài)壓縮DP(旅行商問題,極少考)。

線性DP的模板:dp[i]表示以i結(jié)尾的最優(yōu)解,狀態(tài)轉(zhuǎn)移看i-1、i-2或某個(gè)前綴。背包問題的模板:二維dp[i][j]表示前i個(gè)物品容量j的最大價(jià)值,優(yōu)化成一維要倒序遍歷容量。

面試技巧:先寫暴力遞歸,加記憶化,再改迭代。這個(gè)過程展示思維路徑,比直接寫DP得分更高。

這14個(gè)模式不是終點(diǎn)。真正的高手會(huì)在模板基礎(chǔ)上變形——雙指針擴(kuò)展到多指針,滑動(dòng)窗口加上單調(diào)隊(duì)列,BFS換成雙向BFS。但變形的前提是模板已經(jīng)刻進(jìn)肌肉記憶。

一個(gè)數(shù)據(jù)點(diǎn):2024年北美大廠算法面試中,這14個(gè)模式的原題或變體出現(xiàn)頻率超過90%。剩下的10%是設(shè)計(jì)題或罕見題型,不影響hire/no hire的決定。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
朝鮮戰(zhàn)場(chǎng)繳獲美軍火箭筒,拆解驚覺技術(shù)差距改寫陸軍征程

朝鮮戰(zhàn)場(chǎng)繳獲美軍火箭筒,拆解驚覺技術(shù)差距改寫陸軍征程

嘮叨說歷史
2026-03-18 13:40:57
患者的住院檢查報(bào)告竟是偽造的,中山五院致歉,珠海市衛(wèi)健局:全面排查醫(yī)療機(jī)構(gòu)外送檢查報(bào)告

患者的住院檢查報(bào)告竟是偽造的,中山五院致歉,珠海市衛(wèi)健局:全面排查醫(yī)療機(jī)構(gòu)外送檢查報(bào)告

極目新聞
2026-03-25 17:53:18
中國(guó)軍事專家送日本3句話,太絕了,真不是嚇唬他們

中國(guó)軍事專家送日本3句話,太絕了,真不是嚇唬他們

安安說
2026-03-26 11:21:19
小米新SU7上市72小時(shí):客流被稀釋,要拼產(chǎn)品硬功夫

小米新SU7上市72小時(shí):客流被稀釋,要拼產(chǎn)品硬功夫

36氪
2026-03-24 08:09:09
為什么只有革命衛(wèi)隊(duì)與美以干,而伊朗40萬國(guó)防軍沉默觀戰(zhàn)?

為什么只有革命衛(wèi)隊(duì)與美以干,而伊朗40萬國(guó)防軍沉默觀戰(zhàn)?

廖保平
2026-03-17 09:04:38
省政府領(lǐng)導(dǎo)班子密集調(diào)整,省委常委任常務(wù)副省長(zhǎng)

省政府領(lǐng)導(dǎo)班子密集調(diào)整,省委常委任常務(wù)副省長(zhǎng)

上觀新聞
2026-03-25 15:46:23
2026QS世界大學(xué)學(xué)科排名,發(fā)布!

2026QS世界大學(xué)學(xué)科排名,發(fā)布!

EOL教育在線
2026-03-26 10:21:35
美軍全球調(diào)兵、要打地面戰(zhàn)爭(zhēng)?伊朗:要給特朗普一個(gè)“巨大驚喜”

美軍全球調(diào)兵、要打地面戰(zhàn)爭(zhēng)?伊朗:要給特朗普一個(gè)“巨大驚喜”

野史日記
2026-03-25 10:00:12
游戲結(jié)束,國(guó)債突破39萬億,美聯(lián)儲(chǔ)通知全世界,中方分批運(yùn)回金條

游戲結(jié)束,國(guó)債突破39萬億,美聯(lián)儲(chǔ)通知全世界,中方分批運(yùn)回金條

涵豆說娛
2026-03-26 11:46:21
美軍增援還沒到,莫迪著急表忠心,印度宣布:印軍已出兵霍爾木茲

美軍增援還沒到,莫迪著急表忠心,印度宣布:印軍已出兵霍爾木茲

兵說
2026-03-25 10:18:22
摩根大通CEO竟鼓吹: 打贏這場(chǎng)戰(zhàn),才好跟中國(guó)對(duì)壘

摩根大通CEO竟鼓吹: 打贏這場(chǎng)戰(zhàn),才好跟中國(guó)對(duì)壘

觀察者網(wǎng)
2026-03-25 16:56:10
僅差51助攻達(dá)成場(chǎng)均三雙!約基奇追威少神跡:又刷5紀(jì)錄獻(xiàn)準(zhǔn)絕殺

僅差51助攻達(dá)成場(chǎng)均三雙!約基奇追威少神跡:又刷5紀(jì)錄獻(xiàn)準(zhǔn)絕殺

顏小白的籃球夢(mèng)
2026-03-25 14:16:02
女孩當(dāng)小姐,一晚要提供4到5次上門服務(wù),被親人點(diǎn)到不赴約

女孩當(dāng)小姐,一晚要提供4到5次上門服務(wù),被親人點(diǎn)到不赴約

情感藝術(shù)家
2026-02-26 10:48:00
嘴唇發(fā)紫是心臟在“求救”?原來心臟不好的人,臉上會(huì)“報(bào)警”

嘴唇發(fā)紫是心臟在“求救”?原來心臟不好的人,臉上會(huì)“報(bào)警”

人民日?qǐng)?bào)健康客戶端
2026-03-25 20:29:06
美軍司令:一旦臺(tái)海戰(zhàn)爭(zhēng)打響,6個(gè)航母戰(zhàn)斗群2個(gè)陸戰(zhàn)師將全都出動(dòng)

美軍司令:一旦臺(tái)海戰(zhàn)爭(zhēng)打響,6個(gè)航母戰(zhàn)斗群2個(gè)陸戰(zhàn)師將全都出動(dòng)

霽寒飄雪
2026-03-26 09:54:09
美國(guó)人終于發(fā)現(xiàn):中國(guó)的東風(fēng)導(dǎo)彈,不用擊沉我們航母,擦著即傷!

美國(guó)人終于發(fā)現(xiàn):中國(guó)的東風(fēng)導(dǎo)彈,不用擊沉我們航母,擦著即傷!

觸摸史跡
2026-03-24 12:32:06
下午2點(diǎn)!國(guó)足VS世界杯勁旅,邵佳一敲定中軸線,馬鎮(zhèn)或無緣首發(fā)

下午2點(diǎn)!國(guó)足VS世界杯勁旅,邵佳一敲定中軸線,馬鎮(zhèn)或無緣首發(fā)

何老師呀
2026-03-25 14:59:13
美國(guó)前海豹突擊隊(duì)員稱特朗普遭暗殺是自己策劃的,英國(guó)主持人驚訝

美國(guó)前海豹突擊隊(duì)員稱特朗普遭暗殺是自己策劃的,英國(guó)主持人驚訝

娛樂的宅急便
2026-03-26 09:40:20
直中要害!伊朗呼吁建立無美以聯(lián)盟,一句話讓中東國(guó)家啞口無言

直中要害!伊朗呼吁建立無美以聯(lián)盟,一句話讓中東國(guó)家啞口無言

林子說事
2026-03-26 11:16:12
金融圈美女舉報(bào)領(lǐng)導(dǎo)猥褻,保安立功!網(wǎng)友:張雪峰說的都是真的

金融圈美女舉報(bào)領(lǐng)導(dǎo)猥褻,保安立功!網(wǎng)友:張雪峰說的都是真的

火山詩話
2026-03-25 14:04:48
2026-03-26 12:35:00
我是一個(gè)養(yǎng)蝦人
我是一個(gè)養(yǎng)蝦人
有態(tài)度網(wǎng)友ytd
70文章數(shù) 0關(guān)注度
往期回顧 全部

科技要聞

Meta高管狂分百億期權(quán),700名員工卻下崗

頭條要聞

36歲男子辭百萬年薪工作 在電商賣玩具半年賺了300萬

頭條要聞

36歲男子辭百萬年薪工作 在電商賣玩具半年賺了300萬

體育要聞

35歲替補(bǔ)門將,憑什么入選英格蘭隊(duì)?

娛樂要聞

張雪峰家人首發(fā)聲 不設(shè)追思會(huì)喪事從簡(jiǎn)

財(cái)經(jīng)要聞

黃仁勛:芯片公司的時(shí)代已經(jīng)結(jié)束了

汽車要聞

一汽奧迪A6L e-tron開啟預(yù)售 CLTC最大續(xù)航815km

態(tài)度原創(chuàng)

游戲
家居
手機(jī)
本地
公開課

新馬里奧兄弟重制MC評(píng)分86!痛點(diǎn)解決 畫面性能暴漲

家居要聞

傍海而居 靜觀蝴蝶海

手機(jī)要聞

小米MIUI正式停更,最后兩款設(shè)備停止支持

本地新聞

春日吃花第三站——廣東

公開課

李玫瑾:為什么性格比能力更重要?

無障礙瀏覽 進(jìn)入關(guān)懷版