- 先寫一個(gè)最簡(jiǎn)單的例子,理解題意
- 確認(rèn)輸入輸出
- 確認(rèn)取值范圍
- 簡(jiǎn)述解題步驟/要hint
- 開始動(dòng)筆
- 檢查邊界情況>還是>=,是否要-1等,corner case是否考慮全面,判斷語(yǔ)句邏輯是否寫反
- 用最簡(jiǎn)單的例子跑一遍
- 再用一個(gè)特殊例子跑一遍
- 關(guān)于電面/OA
- 20min能做完一道新的Medium的算法題
- 一遍AC/ 瞬間定位Bug: 杜絕低級(jí)錯(cuò)誤(tab縮進(jìn)/空格縮進(jìn))
- 關(guān)于Onsite
- 白紙/白板寫題思路依然如泉涌
- 肉眼Debug能夠火眼晶晶
- 整體
- 除了結(jié)果正確外,還會(huì)考慮性能問(wèn)題
- 是否能夠考慮到:邊界問(wèn)題,非法輸入問(wèn)題
- 或者
- 如果你通過(guò)一道題目的平均提交次數(shù)在1.5次左右
- 如果你提交的代碼能夠擊敗90%以上
- 杜絕
- 使用功能比較齊全的編譯器:IDE自動(dòng)糾錯(cuò)問(wèn)題,鼠標(biāo)點(diǎn)擊定位問(wèn)題

如何講清一道算法題
- 一定要和面試官交流具體的題目?jī)?nèi)容
- 告訴面試官:這道題很有意思,我以前沒有接觸過(guò),這樣就體現(xiàn)出你在現(xiàn)場(chǎng)是重新做這道題目。
- 問(wèn)面試官有沒有限制條件,說(shuō)出自己大概的想法。
- 列出幾個(gè)possible的算法和數(shù)據(jù)結(jié)構(gòu),看看面試官的反應(yīng),從中獲取hints,在面試中,向面試官要hints的做法其實(shí)是應(yīng)當(dāng)鼓勵(lì)的。
- 能寫多少寫多少,要一直和面試官交流,察言觀色。即使在沒有思路的情況下,如果能在面試官的提示下解出來(lái),也仍然是可以接受的。另外大家要知道,面試官在面試后也需要寫很長(zhǎng)的報(bào)告。如果你一行代碼都沒有寫出來(lái),那么他也無(wú)法寫報(bào)告,所以面試官一般還會(huì)引導(dǎo)著你去答題的。
- 看時(shí)間限制。
Reference:
算法面試,憑什么說(shuō)你準(zhǔn)備好了?