2020-07-23

一、hashMap

數(shù)組加鏈表形式的哈希表,時(shí)間復(fù)雜度O(1)

二、雙向指針問(wèn)題

1. 快慢指針
a. 判斷鏈表是否有環(huán)

答:快慢指針,前進(jìn)一步和前進(jìn)兩步


image.png
b. 鏈表中有環(huán),返回環(huán)的起始節(jié)點(diǎn)

答:當(dāng)快慢指針相遇時(shí),讓其中任一個(gè)指針重新指向頭節(jié)點(diǎn),然后讓它倆以相同速度前進(jìn),再次相遇時(shí)所在的節(jié)點(diǎn)位置就是環(huán)開(kāi)始的位置。

image.png
c. 尋找鏈表中點(diǎn)
image.png

當(dāng)鏈表的長(zhǎng)度是奇數(shù)時(shí),slow 恰巧停在中點(diǎn)位置;如果長(zhǎng)度是偶數(shù),slow 最終的位置是中間偏右:

尋找鏈表中點(diǎn)的一個(gè)重要作用是對(duì)鏈表進(jìn)行歸并排序

回想數(shù)組的歸并排序:求中點(diǎn)索引遞歸地把數(shù)組二分,最后合并兩個(gè)有序數(shù)組。對(duì)于鏈表,合并兩個(gè)有序鏈表是很簡(jiǎn)單的,難點(diǎn)就在于二分。

d. 尋找鏈表的倒數(shù)第k個(gè)元素

答:讓快指針先走k步

image.png
2.左右指針

左右指針在數(shù)組中實(shí)際是指兩個(gè)索引值,一般初始化為 left = 0, right = nums.length - 1 。

可解決問(wèn)題:
a.二分查找
b.兩數(shù)之和
c.反轉(zhuǎn)數(shù)組
//d.滑動(dòng)窗口???(待解決)

三、算法的特性

輸入、輸出、可行、有窮、確定

四、并行和并發(fā)的區(qū)別

image.png

并發(fā):同一時(shí)間段,多個(gè)任務(wù)都在執(zhí)行(單位時(shí)間內(nèi)不一定執(zhí)行)
并行:單位時(shí)間內(nèi)多個(gè)任務(wù)同時(shí)執(zhí)行

五、三山五岳

三山:安徽黃山、江西廬山、浙江雁蕩山
五岳:東岳山東泰山、西岳陜西華山、南岳湖南衡山、北岳山西恒山、中岳河南嵩山

六、隊(duì)列判斷滿和空的條件是什么?

空:

單鏈表空:頭結(jié)點(diǎn)指針域next==NULL

靜態(tài)鏈表空(就是用數(shù)組來(lái)實(shí)現(xiàn)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)):數(shù)組最后一個(gè)元素值為0

循環(huán)鏈表空:頭結(jié)點(diǎn)的指針域指向它本身(循環(huán)查找時(shí)以p->next !=頭結(jié)點(diǎn)作為遍歷結(jié)束條件)

??? 順序存儲(chǔ)時(shí):top==-1 鏈?zhǔn)酱鎯?chǔ)時(shí):top==NULL

隊(duì)列(隊(duì)頭出隊(duì)、隊(duì)尾入隊(duì))
①順序存儲(chǔ)隊(duì)列 front==rear循環(huán)隊(duì)列 front==rear
②鏈?zhǔn)酱鎯?chǔ)鏈隊(duì)列 front、rear均指向頭結(jié)點(diǎn)

滿:
單鏈表、循環(huán)鏈表:不存在
靜態(tài)鏈表:根據(jù)數(shù)組長(zhǎng)度來(lái)判斷
棧 順序存儲(chǔ)時(shí):top==數(shù)組大小-1 鏈?zhǔn)酱鎯?chǔ)時(shí):不存在
隊(duì)列
①順序存儲(chǔ)隊(duì)列 可能假溢出循環(huán)隊(duì)列 (rear+1)% QueueSize == front
②鏈?zhǔn)酱鎯?chǔ)鏈隊(duì)列 不存在

七、折半查找過(guò)程 5,13,19,21,37,56,64,75,80,88,92查找21
56,21

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容