歸并算法https://www.cnblogs.com/chengxiao/p/6194356.html
最大堆的排序,插入,刪除https://blog.csdn.net/sinat_27026243/article/details/77507745
LeetCode 23 Merge k Sorted Lists(合并k個有序鏈表)
Java實現(xiàn)十進制數(shù)轉(zhuǎn)十六進制數(shù)
Java數(shù)據(jù)結(jié)構(gòu)和算法(十一)——紅黑樹
給定數(shù)組,從數(shù)組中取出n個不復(fù)用的數(shù)的和為sum
LeetCode 是一個不錯的地方。如果你能完成其中 50% 的題,那么你基本上可以想面哪里就面哪里了。這里,你要知道,一些面試官也是新手,他們也是從網(wǎng)上找一些算法題來考你。所以,你不用太害怕算法題,都是有套路的。比如:
如果是數(shù)據(jù)排序方面的題,那基本上是和二分查找有關(guān)系的。
如果是在一個無序數(shù)組上的搜索或者統(tǒng)計,基本上來說需要動用 O(1) 時間復(fù)雜度的 hash 數(shù)據(jù)結(jié)構(gòu)。
在一堆無序的數(shù)據(jù)中找 top n 的算法,基本上來說,就是使用最大堆或是最小堆的數(shù)據(jù)結(jié)構(gòu)。
如果是窮舉答案相關(guān)的題(如八皇后、二叉樹等),基本上來說,需要使用深度優(yōu)先、廣度優(yōu)先或是回溯等遞歸的思路。
動態(tài)規(guī)劃要重點準(zhǔn)備一下,這樣的題很多,如最大和子數(shù)組、買賣股票、背包問題、爬樓梯、改字符……這里有一個Top 20 的動態(tài)規(guī)劃題的列表 。
一些經(jīng)典的數(shù)據(jù)結(jié)構(gòu)算法也要看一下,比如,二叉樹、鏈表和數(shù)組上的經(jīng)典算法,LRU 算法,Trie 樹,字符串子串匹配,回文等,這些常見的題都是經(jīng)常會被考到的。
基本上來說,算法題主要是考察應(yīng)聘者是否是計算機專業(yè)出身的,對于基本的數(shù)據(jù)結(jié)構(gòu)和算法有沒有相應(yīng)的認識。你做得多了,就是能感覺得到其中的套路和方法的。所以,本質(zhì)來說,還是要多練多做