4種最常問的編碼算法面試問題

4種最常問的編碼算法面試問題

【CSDN 編者按】面試是測查和評價人員能力素質的一種考試活動。最常問的編碼算法面試問題你知道多少呢?

4种最常问的编码算法面试问题

作者 | Rahul Sabnis

出品 | CSDN(ID:CSDNnews)

在許多采訪中,我經常被要求要麼實現一個通用算法,要麼作為一個更大的解決方案的一部分,實現一個特別的算法。你在數據結構和算法課程中學習到的典型算法在編碼面試中非常常見。不瞭解這些算法可能會讓你失去一份工作,所以我想在本文分享一些編碼面試必須知道的算法。如果這篇文章對你有幫助,請訂閱我的YouTube頻道或在medium.com網站上關注我,以獲取更多類似的內容!如果你想尋找一個很好的資源來學習這些算法,我建議你閱讀這本名為Cracking the Coding Interview的書,它將涵蓋所有這些內容,而且更加詳盡!

免責聲明:這篇文章是基於我在尋找實習生和入門級(新畢業生)開發人員角色的過程中獲取的經驗撰寫的。在任何時候,如果我聲明你需要知道一個算法,這意味著你應該能夠理解這個算法上是如何工作的(包括時間/空間複雜性),並且你能夠用一個例子來展示你對這個算法的理解,而且你能夠用你選擇的語言來實現它。好了,既然我們已經作了這些澄清,那就讓我們進入正題吧!

4种最常问的编码算法面试问题

樹的遍歷算法

這些算法允許你按一種結構化的順序訪問樹中的每個節點。它們主要是為二叉樹設計的,但是你可以調整這些概念來訪問任何樹中的所有節點。學習這些算法還將幫助你瞭解如何遞歸地遍歷樹中的所有節點。

你應該關注的三種算法分別是前序遍歷(Pre-Order Traversal)、中序遍歷(In-Order Traversal)和後序遍歷(Post-Order Traversal)。每種算法的訪問樹節點的順序各不相同。我建議大家要弄清楚這些算法中的訪問一個二叉查找樹中的值的順序。

4种最常问的编码算法面试问题

圖搜索算法

這些算法工作在樹上,有頂點和邊的圖上,以及圖的任何編碼上。它們採用不同的方法將你從起始節點帶到目的節點。

這類算法包括深度優先搜索(DFS)、廣度優先搜索(BFS)和狄克斯特拉(Dijkstra)算法。如果你還有多餘的時間,我建議你也去學習一下A*算法。

4种最常问的编码算法面试问题

查找算法

這是一類算法,實際上只有一個重要的算法:二分查找法。傳統的查找是一種時間複雜度為0(n)的算法,因為一個時間你查看每個元素一次。假設你有一個有序的輸入列表,那麼利用二分查找法的時間複雜度會是O(log(n))。我經常被要求實現一個二分查找法,作為我面試問題解決方案的一部分,所以我強烈建議你去搞清楚這個算法。

4种最常问的编码算法面试问题

排序算法

排序算法包括冒泡排序、插入排序、選擇排序等等。所有這些都是標準算法,你應該理解並能夠實現,但對於平均情況,這些算法的時間複雜度都是O(n²)。面試中最重要的排序算法是這些時間複雜度為O(n*log(n))的排序算法。這一類算法中最常用的兩個算法是歸併排序(merge sort)和快速排序(quick sort)。你至少應該知道其中一個,這一點很重要,當然最好兩種算法你都瞭解。我建議從歸併排序開始,因為它在最壞情況下的時間複雜度為O(n*log(n))而快速排序在最壞情況下的時間複雜度會掉到O(n²)。

英文:4 Most Commonly Asked Algorithms In Coding Interviews

原文鏈接:https://hackernoon.com/must-know-algorithms-for-coding-interviews-h3yz3nrk

【END】


分享到:


相關文章: