天天看點

【LeetCode分類刷題之玩兒轉算法面試】第1章 算法面試到底是什麼鬼? 學習筆記(一)1.1 算法面試不僅僅是正确的回答問題1.1 算法面試不僅僅是正确的回答問題

目錄

1.1 算法面試不僅僅是正确的回答問題

1、這個課程的目标是什麼?

2、算法面試是什麼?

(1)什麼是給出合理的思考路徑

(2)“正确”本身是一個相對概念

(3)什麼是“正确”的回答一個算法問題

1.1 算法面試不僅僅是正确的回答問題

1、這個課程的目标是什麼?

讓大家在面對面試中的算法問題時,有一個合理的思考路徑;面對算法面試,不畏懼。因為面試中的算法問題,通常并不“複雜”,遠遠不需要啃完一本《算法導論》。

2、算法面試是什麼?

讓大家在面對面試中的算法問題時,有一個合理的思考路徑:不代表能夠“正确”回答每一個算法問題,但是合理的思考方向其實更重要,也是正确完成算法面試問題的前提;算法面試優秀不意味着技術面試優秀;技術面試優秀不意味着能夠拿到Offer。

(1)什麼是給出合理的思考路徑

算法面試的目的不是給出一個“正确”答案,而是展示給面試官你思考問題的方式。

(2)“正确”本身是一個相對概念

算法面試不是聯考。把這個過程看作是和面試官一起探讨一個問題的解決方案。對于問題的細節和應用環境,可以和面試官溝通。這個溝通本身很重要,它暗示着你思考問題的方式。

例:對一組資料進行排序。

我們需要對一組資料進行排序:快速排序算法

【LeetCode分類刷題之玩兒轉算法面試】第1章 算法面試到底是什麼鬼? 學習筆記(一)1.1 算法面試不僅僅是正确的回答問題1.1 算法面試不僅僅是正确的回答問題

這組資料有什麼樣的特征?

①有沒有可能包含有大量重複的元素?如果有這種可能的話,三路快排是更好地選擇。

②是否大部分資料距離它正确的位置很近?是否近乎有序?如果是這樣的話,插入排序是更好地選擇。

③是否資料的取值範圍非常有限?比如對學生成績排序。如果是這樣的話,計數排序是更好地選擇。

④是否需要穩定排序?如果是的話,歸并排序是更好地選擇。

⑤資料的存儲狀況是怎樣的?是否是使用連結清單存儲的?如果是的話,歸并排序是更好地選擇。資料的大小是否可以裝載在記憶體裡?資料量很大,或者記憶體很小,不足以裝載在記憶體裡,需要使用外排序算法。

(3)什麼是“正确”的回答一個算法問題

正确還包含對問題的獨到見解;優化;代碼規範;容錯性;等等等等……

這個課程不僅僅是給出解決算法問題的代碼。

如果是非常難的問題,對你的競争對手來說,也是難的。關鍵在于你所表達出的解決問題的思路。甚至通過表達解題思路的方向,得出結論:這個問題的解決方案,應該在哪一個領域,我可以通過查閱或者進一步學習解決問題。