1. 程式人生 > >算法面試課程筆記001 算法面試到底是什麽鬼

算法面試課程筆記001 算法面試到底是什麽鬼

書籍 工作內容 如何解決 lin 優化 abi cor 分數 每一個

算法面試課程筆記001算法面試到底是什麽鬼

===============================================================================

本文地址 :

===============================================================================

算法面試是什麽?

讓大家在面對面試中的算法問題時,有一個合理的思考路徑;

  • ·不代表能夠"正確"回答每一個算法問題,但是合理的思考方向其實更重要,也是正確完成算法面試問題的前提
  • ·算法面試優秀不意味著技術面試優秀
  • ·技術面試優秀不意味著能夠拿到Offer

一.什麽是"正確"的回答一個算法問題

合理的思考路徑:算法面試的目的不是給出一個"正確"答案;正確還包含對問題的獨到見解;優化;代碼規範;封裝出的代碼的容錯性;

把這個過程看作是和面試官一起探討一個問題的解決方案。

對於問題的細節和應用環境,可以和面試官溝通。

這種溝通本身很重要,它暗示著你思考問題的方式。

舉例:假如對一組數據進行排序。 算法&數據結構

正常最優的為快速排序算法O(nlogn) 。但是是否考慮過以下這幾種情況呢?

  • ·有沒有可能包含有大量重復的元素?
  • ·是否大部分數據距離它正確的位置很近?是否近乎有序?
  • ·是否數據的取值範圍非常有限?比如對學生成績排序。
  • ·是否需要穩定排序?
  • ·是否是使用鏈表存儲的?
  • ·數據的大小是否可以裝載在內存裏?

    這組數據有什麽樣的特征?

    ·有沒有可能包含有大量重復的元素?

    ·如果有這種可能的話,三路快排是更好地選擇。

    ·是否大部分數據距離它正確的位置很近?是否近乎有序?

    ·如果是這樣的話,插入排序是更好地選擇。

    ·是否數據的取值範圍非常有限?比如對學生成績排序。

    ·如果是這樣的話,計數排序是更好地選擇。

    對排序有什麽額外的要求?

    ·是否需要穩定排序?

    ·如果是的話,歸並排序是更好地選擇。

    數據的存儲狀況是怎樣的?

    ·是否是使用鏈表存儲的?

    ·如果是的話,歸並排序是更好地選擇。

    ·是否是使用隨機存儲的?

    ·如果是的話,快速排序是更好地選擇。

    數據的存儲狀況是怎樣的?

    ·數據的大小是否可以裝載在內存裏?

    ·數據量很大,或者內存很小,不足以裝載在內存裏,需要使用外排序算法。

如果一個問題是非常難的問題,對你的競爭對手來說,也是難的。

關鍵在於你所表達出的解決問題的思路。甚至通過表達解題思路的方向,得出結論:這個問題的解決方案,應該在哪一個領域,我可以通過查閱或者進一步學習解決問題。

二.算法面試優秀不意味著技術面試優秀

算法面試只是技術面試的一部分。

根據你的簡歷和應聘職位的不同,勢必要考察其他技術方面。

技術面試的內容:(根據自己職位而定)

  • 項目經歷和項目中遇到的實際問題
  • 你遇到的印象最深的bug是什麽?
  • 面向對象
  • 設計模式
  • 網絡相關;安全相關;內存相關;並發相關;…
  • 系統設計;scalability

技術面試只是面試的一部分。面試不僅僅是考察你的技術水平,還是了解你的過去以及形成的思考行為方式。

項目經歷

  • 工作人士
  • 研究生
  • 本科生

-畢業設計

-其他課程設計

如何找到項目?

  • 實習
  • 參與實戰課程學習
  • 慕課網
  • Coursera

創建自己的項目

  • 自己做小應用:計劃表;備忘錄;播放器.…
  • 自己解決小問題:爬蟲;數據分析;詞頻統計…
  • 自己做網站,為別人提供服務,做博客;
  • "不是項目"的項目:一本優秀的技術書籍的代碼整理等…
  • ·分享:自己的技術博客;github等等通過過去了解你的思考行為方式

通過過去了解你的思考行為方式

  • 遇到的最大的挑戰? (項目中的算法問題)
  • 犯過的錯誤?
  • 遭遇的失敗?
  • 最享受的工作內容?
  • 遇到沖突的處理方式?
  • 做的最與眾不同的事兒?

準備好合適的問題問面試官

  • 整個小組的大概運行模式是怎樣的?
  • 整個項目的後續規劃是如何的?
  • 這個產品中的某個問題是如何解決的?
  • ·為什麽會選擇某些技術?標準?
  • 我對某個技術很感興趣,在你的小組中我會有怎樣的機會深入這種技術?

算法面試仍然是非常重要的一部分

===============================================================================

路漫漫其修遠兮,吾將上下而求索。Let‘s grow up together !

===============================================================================

算法面試課程筆記001 算法面試到底是什麽鬼