常見算法面試題的解法

學識都 人氣:1.47W

      今天小編在本站上收集到一篇關於常見算法面試題的解法的文章,現在跟大家分享一下:

常見算法面試題的解法

      算法面試題中經常出現的一種題目就是查找或者是排序. 個人感覺有80%的題目都和查找排序有關

      大部分常用的排序算法時間複雜度都是O(nLogn)

      這個只能說是通用解,一般解

      對於算法面試題中往往要求很低的時間複雜度,

      例如下面這個題目

      已知一個數組長爲m 中間存放的都是整數 其值範圍爲1-m ,中間的元素有可能重複 也有可能不重複

      如何在O(M)的情況下查到 (1-m)的數中 哪些數重複了,哪些數沒有出現

      counting sort 的本質是 新建一個長度爲M的數組An 每一個數組下標代表一個數 ,數組中的.值代表這個元素出現的次數 (初始值都爲0)

      那麼, 遍歷一次m 遇到一個數 就在對應的下標上加1

      那麼最終可以得到一個An 其中包含了所有元素的出現個數

      將其展開 就可以獲得排序完的數組
     
      這是一種特殊的算法,只能解決特殊的問題 但是他的時間複雜度是O(n)

      如果在你遇到排序 或者查找之類的算法題的時候,不如上去先試試counting sort

 

      更多精彩的面試問題分享,敬請參考:高效的面試問題   八大經典面試問題的對應方法   五大奇怪的面試問題