leetcode和鸥阏酰客網(wǎng)刷題

字符串

jz5. 替換空格
71. 簡(jiǎn)化路徑
150. 逆波蘭表達(dá)式求值
思路:分離符號(hào)位和數(shù)字位置济,注意判斷數(shù)字的字符號(hào)

數(shù)組

面試題:一個(gè)無(wú)序數(shù)組中兩個(gè)數(shù)之和等于給定的值N
方法一:窮舉法:全部遍歷壹瘟,時(shí)間復(fù)雜度為O(n^2)
方法二:先排序阅签,然后查找:使用快排(O(nlogn))矿瘦,然后使用兩個(gè)指針枕面,一個(gè)指針指向頭pi,一個(gè)指針指向尾部pj缚去,如果兩個(gè)指針指向的數(shù)字的和為N潮秘,則找到一組,pi++,pj--;如果和大于N則pj--;如果和小于N易结,則pi++枕荞。
方法三:遍歷數(shù)組稠通,將所有的值存入hash_map中

查找

jz4.二維數(shù)組中的查找

jz11.旋轉(zhuǎn)數(shù)組的最小數(shù)字
時(shí)間復(fù)雜度的優(yōu)化為O(logn)

棧與隊(duì)列

jz.9用兩個(gè)棧實(shí)現(xiàn)隊(duì)列
jz.30包含min函數(shù)的棧
zuo.用遞歸函數(shù)和棧操作逆序棧
zuo.用一個(gè)棧實(shí)現(xiàn)另一個(gè)棧的排序
239.滑動(dòng)窗口最大值 zuo.生成窗口最大數(shù)組
jz31.棧的壓入、彈出序列
借助一個(gè)棧來(lái)實(shí)現(xiàn)

鏈表:

jz6.從尾到頭打印鏈表
有非遞歸和遞歸兩種解法

234. 回文鏈表 [已二刷]
請(qǐng)判斷一個(gè)鏈表是否為回文鏈表买猖。
思路:方法一:用遍歷鏈表改橘,同時(shí)將結(jié)點(diǎn)存入棧中,然后用鏈表頭開(kāi)始與棧頂一個(gè)一個(gè)比較玉控,如果不相等返回false飞主,直到遍歷完成后全部一樣,返回true高诺。這種方法時(shí)間復(fù)雜度為O(n)碌识,空間復(fù)雜度為O(n)。
方法二:用雙指針找出中間結(jié)點(diǎn)虱而。然后反轉(zhuǎn)后半段鏈表筏餐。反轉(zhuǎn)完畢后,從最左邊結(jié)點(diǎn)與最右邊結(jié)點(diǎn)比較牡拇,相等都像中間移動(dòng)魁瞪,若有結(jié)點(diǎn)不相等,則ret=false惠呼;最后恢復(fù)鏈表导俘。

86. 分隔鏈表[已二刷]
給定一個(gè)鏈表和一個(gè)特定值 x,對(duì)鏈表進(jìn)行分隔剔蹋,使得所有小于 x 的節(jié)點(diǎn)都在大于或等于 x 的節(jié)點(diǎn)之前旅薄。你應(yīng)當(dāng)保留兩個(gè)分區(qū)中每個(gè)節(jié)點(diǎn)的初始相對(duì)位置。
思路:定義四個(gè)指針泣崩,分別是小于x的begin和end指針少梁,小于等于x的begin和end指針。然后遍歷鏈表矫付,并切分結(jié)點(diǎn)凯沪,將小于x的結(jié)點(diǎn)用小于x的begin和end指針維護(hù),將大于等于x的結(jié)點(diǎn)用另外兩個(gè)結(jié)點(diǎn)維護(hù)技即。遍歷結(jié)束時(shí)著洼,判斷小于x的begin指針是否為空,若為空而叼,返回大于等于x的begin結(jié)點(diǎn),若不為空豹悬,將小于x的end結(jié)點(diǎn)的next指針指向大于等于x的begin葵陵,返回小于x的begin結(jié)點(diǎn)。

138. 復(fù)制帶隨機(jī)指針的鏈表
給定一個(gè)鏈表瞻佛,每個(gè)節(jié)點(diǎn)包含一個(gè)額外增加的隨機(jī)指針脱篙,該指針可以指向鏈表中的任何節(jié)點(diǎn)或空節(jié)點(diǎn)娇钱。要求返回這個(gè)鏈表的深度拷貝。
思路:
方法一:使用hasmap绊困,空間復(fù)雜度為O(n)
方法二:直接復(fù)制文搂,將next指針指向復(fù)制的結(jié)點(diǎn),空間復(fù)雜度為O(1)

141. 環(huán)形鏈表[已二刷]
給定一個(gè)鏈表秤朗,判斷鏈表中是否有環(huán)煤蹭。
思路:
方法一:借助set來(lái)判斷
方法二:快慢指針

142. 環(huán)形鏈表 II[已二刷]
給定一個(gè)鏈表,返回鏈表開(kāi)始入環(huán)的第一個(gè)節(jié)點(diǎn)取视。 如果鏈表無(wú)環(huán)硝皂,則返回 null。
方法一:借助set來(lái)判斷
方法二:快慢指針(原理一定要說(shuō)明白)

160. 相交鏈表[已二刷]
編寫(xiě)一個(gè)程序作谭,找到兩個(gè)單鏈表相交的起始節(jié)點(diǎn)稽物。
方法一:借助set來(lái)判斷
方法二:通過(guò)鏈表移動(dòng)來(lái)判斷

19. 刪除鏈表的倒數(shù)第N個(gè)節(jié)點(diǎn)
典型的快慢指針的,但其中有許多細(xì)節(jié)需要注意

jz22.鏈表中的倒數(shù)第k個(gè)結(jié)點(diǎn)
jz25.合并兩個(gè)排序鏈表

zuo.刪除鏈表的中間結(jié)點(diǎn)和a/b處的結(jié)點(diǎn)
刪除鏈表中的結(jié)點(diǎn)需要主要找到需要?jiǎng)h除結(jié)點(diǎn)的前一個(gè)元素折欠,然后再刪除結(jié)點(diǎn)贝或。

二叉樹(shù):

144. 二叉樹(shù)的前序遍歷[已二刷]
思路:遞歸實(shí)現(xiàn)與非遞歸實(shí)現(xiàn)
94. 二叉樹(shù)的中序遍歷[已二刷]
思路:遞歸實(shí)現(xiàn)與非遞歸實(shí)現(xiàn)
145. 二叉樹(shù)的后序遍歷[已二刷]
思路:遞歸實(shí)現(xiàn)與非遞歸實(shí)現(xiàn)

jz7. 重建二叉樹(shù)
是一個(gè)很好的面試題,在手寫(xiě)的代碼的時(shí)候需要注意異常情況的判斷

331. 驗(yàn)證二叉樹(shù)的前序序列化
思路:
空結(jié)點(diǎn) - 非空結(jié)點(diǎn) = 1锐秦,維護(hù)這條等式傀缩。
297. 二叉樹(shù)的序列化與反序列化
思路:
序列化時(shí)將每個(gè)結(jié)點(diǎn)的數(shù)之間加入一個(gè)‘#’用來(lái)區(qū)分結(jié)點(diǎn)與結(jié)點(diǎn),用‘_’用來(lái)區(qū)分空結(jié)點(diǎn)农猬。
遍歷順序可以為前序遍歷赡艰、中序遍歷、后序遍歷斤葱。
反序列化時(shí)用‘#’來(lái)切分字符串慷垮,然后用對(duì)應(yīng)的遍歷生成二叉樹(shù)。

110. 判斷平衡二叉樹(shù)
思路:遞歸判斷左子樹(shù)和右子樹(shù)的高度差是否為1

98. 驗(yàn)證二叉搜索樹(shù)
思路:二叉搜索樹(shù)的中序遍歷的結(jié)果為遞增序列

222. 完全二叉樹(shù)的節(jié)點(diǎn)個(gè)數(shù) 注意注意:第一次遇見(jiàn)這樣的思路揍堕,還需要多練習(xí)
思路:通過(guò)統(tǒng)計(jì)左結(jié)點(diǎn)來(lái)獲取樹(shù)的高度料身,然后判斷根結(jié)點(diǎn)的右結(jié)點(diǎn)的最左結(jié)點(diǎn)是否為空,若不為空衩茸,則左子樹(shù)加根結(jié)點(diǎn)的個(gè)數(shù)為2 ^(h-level)芹血,若為空,則右子樹(shù)的加上根結(jié)點(diǎn)的個(gè)數(shù)為2 ^(h-level-1)楞慈。遞歸求和幔烛。

226. 翻轉(zhuǎn)二叉樹(shù) jz27.二叉樹(shù)的鏡像
注:貝殼二面面試時(shí)手撕的代碼,現(xiàn)場(chǎng)寫(xiě)出來(lái)了囊蓝,回來(lái)看leetcode原來(lái)是個(gè)簡(jiǎn)單題饿悬,面試官手下留情了。

101. 對(duì)稱二叉樹(shù) jz28.對(duì)稱二叉樹(shù)
是上一題的延續(xù)聚霜,還需要重新回顧狡恬。
思路:根據(jù)原二叉樹(shù)的前序遍歷順序與對(duì)稱二叉樹(shù)的順序比較珠叔,如果比較的結(jié)點(diǎn)有一個(gè)為空,另一個(gè)不為空弟劲,返回false祷安,如果比較的結(jié)點(diǎn)中value值不相等,返回false兔乞。

655. 輸出二叉樹(shù)
學(xué)習(xí)到的知識(shí)點(diǎn):vector中不僅可以初始化int類型汇鞭,也可以初始化string類型,初始值為""报嵌。
先將n*m維數(shù)組的中的值初始化為"",然后修改與二叉樹(shù)對(duì)應(yīng)的值虱咧。

jz54.二叉搜索樹(shù)的第k個(gè)結(jié)點(diǎn)
思路:根據(jù)二叉搜索樹(shù)本的的性質(zhì):二叉搜索樹(shù)中序遍歷有序性,可以找到第k個(gè)結(jié)點(diǎn)锚国。最好用非遞歸的方法寫(xiě)腕巡。

jz. 二叉樹(shù)的層次遍歷 102. 二叉樹(shù)的層次遍歷
思路:借助兩個(gè)queue交替來(lái)層次遍歷二叉樹(shù)

103. 二叉樹(shù)的鋸齒形層次遍歷
思路:借助兩個(gè)棧來(lái)實(shí)現(xiàn),其中主要入棧順序

jz.之字形打印二叉樹(shù)
思路:借助隊(duì)列和棧來(lái)層次遍歷二叉樹(shù)

jz8.二叉樹(shù)中序遍歷的下一個(gè)結(jié)點(diǎn)
思路:如果該結(jié)點(diǎn)有右子樹(shù)血筑,則下一個(gè)結(jié)點(diǎn)為該右子樹(shù)的最左結(jié)點(diǎn)绘沉;如果該結(jié)點(diǎn)沒(méi)有右子樹(shù),則判斷該結(jié)點(diǎn)是否為父結(jié)點(diǎn)的左孩子豺总,若是车伞,則父結(jié)點(diǎn)為該結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn);若不是喻喳,則向上遍歷另玖,若找得到某個(gè)結(jié)點(diǎn)是父結(jié)點(diǎn)的左孩子,則為該結(jié)點(diǎn)表伦,若找不到谦去,則為空。

jz26.樹(shù)的子結(jié)構(gòu)
很好的一遞歸個(gè)思路蹦哼,需要留意鳄哭。

jz33.二叉搜索樹(shù)的后序遍歷
遇到這種題,首先先自己畫(huà)出一個(gè)二叉搜索樹(shù)纲熏,并將其后序遍歷的數(shù)組寫(xiě)出來(lái)妆丘,查找規(guī)律:根據(jù)數(shù)組最后一個(gè)數(shù)(根結(jié)點(diǎn))來(lái)將數(shù)組分為小于根結(jié)點(diǎn)的數(shù)組和大于根結(jié)點(diǎn)的數(shù)組,然后遞歸判斷即可局劲。

295. 數(shù)據(jù)流的中位數(shù)
思路:維護(hù)一個(gè)最大堆和一個(gè)最小堆勺拣,中位數(shù)就在這兩個(gè)堆的堆頂。

哈希

380. 常數(shù)時(shí)間插入容握、刪除和獲取隨機(jī)元素
思路:重點(diǎn)是索引的建立

并查集

200. 島嶼的個(gè)數(shù)
思路:1. 在單CPU中可以用影響函數(shù)來(lái)標(biāo)識(shí)島嶼宣脉;2. 在大數(shù)據(jù)的時(shí)候需要用到并查集

547. 朋友圈
思路:先將每個(gè)小朋友當(dāng)作獨(dú)立的集合,然后將有聯(lián)系的小朋友union為同一個(gè)集合剔氏,最后輸出集合的個(gè)數(shù)塑猖。

前綴樹(shù)(Trie樹(shù))

208. 實(shí)現(xiàn) Trie (前綴樹(shù))
Trie樹(shù)的基本實(shí)現(xiàn)過(guò)程

211. 添加與搜索單詞 - 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

線段樹(shù)

貪心

179. 最大數(shù)

動(dòng)態(tài)規(guī)劃

其他

jz29.順時(shí)針打印矩陣
這個(gè)題的邊界條件需要特別主要,理解打印過(guò)程就不太難了谈跛,難點(diǎn)就在邊界條件的考慮上羊苟。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市感憾,隨后出現(xiàn)的幾起案子蜡励,更是在濱河造成了極大的恐慌,老刑警劉巖阻桅,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凉倚,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡嫂沉,警方通過(guò)查閱死者的電腦和手機(jī)稽寒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)趟章,“玉大人杏糙,你說(shuō)我怎么就攤上這事◎就粒” “怎么了宏侍?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蜀漆。 經(jīng)常有香客問(wèn)我谅河,道長(zhǎng),這世上最難降的妖魔是什么确丢? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任绷耍,我火速辦了婚禮,結(jié)果婚禮上蠕嫁,老公的妹妹穿的比我還像新娘锨天。我一直安慰自己,他們只是感情好剃毒,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著益缠,像睡著了一般幅慌。 火紅的嫁衣襯著肌膚如雪轰豆。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天祷杈,我揣著相機(jī)與錄音但汞,去河邊找鬼互站。 笑死瑰煎,一個(gè)胖子當(dāng)著我的面吹牛弧可,可吹牛的內(nèi)容都是我干的蚓炬。 我是一名探鬼主播亡容,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼茂缚,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼屋谭!你這毒婦竟也來(lái)了桐磁?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎看峻,沒(méi)想到半個(gè)月后互妓,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年瘫辩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片承绸。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡军熏,死狀恐怖荡澎,靈堂內(nèi)的尸體忽然破棺而出晤锹,到底是詐尸還是另有隱情鞭铆,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布封断,位于F島的核電站坡疼,受9級(jí)特大地震影響衣陶,放射性物質(zhì)發(fā)生泄漏祖搓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧隆箩,春花似錦捌臊、人聲如沸兜材。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)户侥。三九已至,卻和暖如春屋摔,著一層夾襖步出監(jiān)牢的瞬間凡壤,已是汗流浹背亚侠。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工硝烂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留滞谢,地道東北人狮杨。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓橄教,卻偏偏與公主長(zhǎng)得像护蝶,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子盔夜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 這個(gè)月將是下跌的一月涛漂,所以做單的基本方向就確定了匈仗,就是做空悠轩,這個(gè)月也可以做多火架,因?yàn)椴豢赡芤粋€(gè)月都下跌何鸡,也有會(huì)上漲反...
    利佛摩爾閱讀 192評(píng)論 0 0
  • 問(wèn)世間情為何物吮炕,直教人生死相許龙亲。 若所有癡情女子都能嫁給愛(ài)情俱笛,那該是多美好的事啊迎膜。 奈何人生不如意事常八九磕仅,世上哪...
    水清如閱讀 367評(píng)論 0 0
  • 楔子 在安瀾王朝店茶,有一個(gè)人贩幻,她睜開(kāi)一雙清純的眼睛两嘴,眼底一閃即逝地恨意趣些,伸出一雙干瘦而白皙的小手坏平,卻發(fā)現(xiàn)這不是自己的...
    璦芬閱讀 175評(píng)論 0 0
  • 一只腳踏進(jìn)夢(mèng)中 一只還在意識(shí)中勾留 殘存的面影如心中朗月 彌漫著秀麗的色彩朦朧 清風(fēng)似醉人的酒般香甜 摻著幾分想念...
    精靈熊閱讀 208評(píng)論 0 1