- 相關推薦
常見的算法面試題
算法面試題中經常出現的一種題目就是查找或者是排序. 個人感覺有80%的題目都和查找排序有關,大部分常用的排序算法時間復雜度都是O(nLogn)。這個只能說是通用解,一般解,對于算法面試題中往往要求很低的時間復雜度。
例如下面這個題目
已知一個數組長為m 中間存放的都是整數 其值范圍為1-m ,中間的元素有可能重復 也有可能不重復
如何在O(M)的情況下查到 (1-m)的數中 哪些數重復了,哪些數沒有出現
counting sort 的本質是 新建一個長度為M的數組An 每一個數組下標代表一個數 ,數組中的值代表這個元素出現的次數 (初始值都為0)
那么, 遍歷一次m 遇到一個數 就在對應的下標上加1
那么最終可以得到一個An 其中包含了所有元素的出現個數
將其展開 就可以獲得排序完的數組
這是一種特殊的算法,只能解決特殊的問題 但是他的時間復雜度是O(n)
如果在你遇到排序 或者查找之類的算法題的時候,不如上去先試試counting sort
相關文章分享:
http://m.shddsc.com/
【常見的算法面試題】相關文章:
java算法面試常見問題08-05
明基常見面試題08-06
常見護士面試題目及答案08-09
常見面試題目及解析08-22
名校英語面試經典常見的面試題09-25
汽車銷售應聘常見面試題09-25
應聘淘寶客服的常見面試題08-07
常見的企業面試題目有哪些08-22
跳槽求職者常見面試題09-21
哈佛大學常見的5類面試題型08-22