常見(jiàn)的算法面試題解法
大部分常用的排序算法時(shí)間復(fù)雜度都是O(nLogn)
這個(gè)只能說(shuō)是通用解,一般解
對(duì)于算法面試題中往往要求很低的時(shí)間復(fù)雜度,
例如下面這個(gè)題目
已知一個(gè)數(shù)組長(zhǎng)為m 中間存放的都是整數(shù) 其值范圍為1-m ,中間的元素有可能重復(fù) 也有可能不重復(fù)
如何在O(M)的情況下查到 (1-m)的數(shù)中 哪些數(shù)重復(fù)了,哪些數(shù)沒(méi)有出現(xiàn)
counting sort 的本質(zhì)是 新建一個(gè)長(zhǎng)度為M的`數(shù)組An 每一個(gè)數(shù)組下標(biāo)代表一個(gè)數(shù) ,數(shù)組中的值代表這個(gè)元素出現(xiàn)的次數(shù) (初始值都為0)
那么, 遍歷一次m 遇到一個(gè)數(shù) 就在對(duì)應(yīng)的下標(biāo)上加1
那么最終可以得到一個(gè)An 其中包含了所有元素的出現(xiàn)個(gè)數(shù)
將其展開(kāi) 就可以獲得排序完的數(shù)組
這是一種特殊的算法,只能解決特殊的問(wèn)題 但是他的時(shí)間復(fù)雜度是O(n)
如果在你遇到排序 或者查找之類的算法題的時(shí)候,不如上去先試試counting sort
【常見(jiàn)的算法面試題解法】相關(guān)文章:
最常見(jiàn)的面試題09-17
4個(gè)常見(jiàn)的面試題08-08
常見(jiàn)的軟件測(cè)試面試題06-06
常見(jiàn)軟件測(cè)試面試題05-10
酒店銷售常見(jiàn)面試題08-11
常見(jiàn)面試題回答點(diǎn)評(píng)08-04
常見(jiàn).net面試題及答案06-19