玩转算法面试-第三章
數(shù)組中常見(jiàn)的問(wèn)題
排序: 選擇排序;插入排序;歸并排序;快速排序
查找:二分查找法
數(shù)據(jù)結(jié)構(gòu):棧;隊(duì)列;堆
…
二分查找法:
1964年提出,沒(méi)有bug的二分查找法是在1962年出現(xiàn)
對(duì)于有序的排列,才能使用二分查找法
1查找中間的元素是否和目標(biāo)元素相等
2小于,在左邊找
3大于,在右邊找
4關(guān)鍵點(diǎn):邊界問(wèn)題
區(qū)間為閉區(qū)間[l…r]
區(qū)間為前閉后開(kāi):[l…r)
如果存在整型溢出
leetcode 283 Move Zeros
給定一個(gè)數(shù)組nums,寫一個(gè)函數(shù),將數(shù)組中所有的0挪到數(shù)組的末尾,而維持其他非0元素的相對(duì)位置。
1 思考題:刪除元素
2 刪除重復(fù)的元素
擴(kuò)展題:最多保留兩個(gè)重復(fù)元素
3-5 基礎(chǔ)算法思路的應(yīng)用
擴(kuò)展題:歸并排序
leetcode 215 利用快排的思路,在一個(gè)整數(shù)序列中尋找第k大的元素
leetcode 167
1 兩個(gè)不同的元素
2 返回索引(索引是0開(kāi)始,還是1開(kāi)始)
167的解決方法就是對(duì)撞指針
125 有效回文串
空字符串如何看?
字符的定義?
大小寫問(wèn)題?
解決方案:對(duì)撞指針
擴(kuò)展題345:對(duì)元音字母進(jìn)行翻轉(zhuǎn)
容器水最多,思考仍然用對(duì)撞指針去解決
3-7 雙索引技術(shù)(對(duì)撞指針等)
1 滑動(dòng)窗口:
ep1: leetcode 209
什么叫子數(shù)組?子數(shù)組分連續(xù)喝不連續(xù)梁總中情況
如果沒(méi)有接怎么辦?返回0?、
如果有多個(gè)解怎么樣?應(yīng)該怎么返回?按照什么規(guī)則?
練習(xí)題:sum求解是否可以使復(fù)雜度降為o(n*n)
窗口的長(zhǎng)度把那個(gè)不是保持不變,同時(shí)由i和j控制;
3-8
如何記錄重復(fù)字符:
練習(xí)題1:(利用滑動(dòng)窗口解決)
注意問(wèn)題: 字符集范圍?英文小寫字母
返回的解的順序?任意
練習(xí)題2:leetcode76
注意問(wèn)題:
總結(jié)
以上是生活随笔為你收集整理的玩转算法面试-第三章的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python中实现模糊匹配的魔法库:Fu
- 下一篇: 论文解读:Attention is Al