學習演算法的最佳和最差方法:資料結構和演算法的 5 個核心主題

高拉夫·森

  • 2023 年 7 月 29 日·4 分鐘閱讀

你知道健美選手是如何鍛鍊肌肉的嗎?他們在無限的可能性中選擇最好的練習。

那麼資料結構的深蹲和硬舉是什麼呢?以下是一些很好的練習:

1.動態規劃

這是軟體工程面試中最資料結構和常見的話題。許多考生對 DP 問題感到擔憂,因為它們需要遞歸思考。

對於面試官來說,動態規劃很棒,因為提出新的遞歸問題很容易。對於候選人來說,在 30 分鐘內給出答案是很困難的。

2. 二元樹

可能和DP一樣常見。面試官喜歡它們,因為他們可以真正了解候選人的想法。他們測試候選人如何將他們的視覺思維轉化為程式設計解決方案。

樹遍歷、遞歸和尋找祖先/孩子是這裡的常見子主題。作為候選人,我想我想要一個樹問題。如果資料結構和你準備充分,這些問題很容易解決。

3.圖的遍歷

幾乎所有與圖相關的問題都是關於遍歷的,要么是呼吸優先搜尋(BFS),要么是深度優先搜尋(DFS)。

識別圖形問題很困難,但解決它相對簡單。一些全域指針,檢查是否找到節點,然後您就可以開始了。

這些演算法更多的是尋找模式。從這個意義上來說,它們類似於動態規劃。然而,解決方案通常是迭代的,並且處理問題的結構而不是大量的數學。

在模式變得明顯之前,它們通常需要進行排序或聚合等初步操作。

5.臨時問題

臨時問題要么是新想到的,要 股東資料庫 么來自一組標準的面試問題。他們傾向於測試候選人的決心。解決方案通常包括尋找模式、應用演算法技術等……一些榮譽獎資料結構和包括連結列表、陣列和堆疊。

就是這樣!你的問題集應該很好地涵蓋這些主題。

另外,你真的應該避免把時間浪費在不好的運動上。以下是演算法的壓腿:

-1。集合論

眾所周知,集合問題很難理解。您最好練習圖演算法並將新增、刪除和更新等集合操作封裝到已知的集合資料結構(HashSet 或 TreeSet)中。

對面試官來說,集合論問題和提示是很難設定的。極低的通過率使其成為一個糟糕的工具你的經理可能會問你為什麼面試你的每個人都失敗了。

股東資料庫

-2。組合學

動態規劃的邪惡雙胞 5 位最佳電子郵件行銷發言人 胎與圖共享一個父對象。組合問題的問題是…理論。如果你能記住公式,或當場推導出它們,問題看起來很簡單。

如果沒有,你可能會花 30 分鐘盯著問題,卻不知道如何取得進展。

-3。字串問題

迄今為止,為競賽或資料結構和面試問題設計的最糟糕的一組問題。大多數人都 中國資料庫 會記住(我不是開玩笑)在字串中查找模式或有效查找回文的程式碼。

這如何幫助找到一個好的候選人?帷幕揭開——它沒有。

-4。位元運算符

位運算子問題是從集合論中提出的。當你需要用集合論來設計問題時,你真的已經陷入困境了。

好處:您可以在O(N/64)時間內而不是O(N)時間內向集合添加元素、刪除它們並找到它們的存在。

我們的回應是:“感謝您給我這個機會。”

-5。沒有臨時變數的情況下交換變數

這是你能得到的最糟糕的問題類型。我建議讓面試官改變問題(認真的)。

如果他們堅持要你解決這個問題,你就知道這家公司的管理是怎麼樣的。

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端