日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【面试锦囊】14种模式搞定面试算法编程题(8-14)

發(fā)布時間:2025/3/8 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【面试锦囊】14种模式搞定面试算法编程题(8-14) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

面試錦囊之知識整理系列

面試錦囊系列一直有收到大家的反饋,包括后臺內(nèi)推成功的消息、朋友的同事從創(chuàng)業(yè)小公司成功跳到huawei等等,非常高興小破號的這些整理分享能夠真正地幫助到大家,以后也會繼續(xù)。為了更方便大家的交流溝通,我們建立了算法面試討論組,感興趣的小伙伴可以訂閱后臺回復(fù)"面試"加入

好了不廢話啦,今天文章的主題繼續(xù)分享上一篇未寫完的部分,14種模式搞定面試算法編程題(PART I)。經(jīng)過本人之前筆試面試經(jīng)驗證明確實確實非常非常高頻,一定要十分熟悉。對于每一種思路會給出

  • 「基本原理(附圖)」

  • 「應(yīng)用場景」

  • 「Leetcode或劍指offer具體栗子」

    enjoy!

8、循環(huán)排序

循環(huán)排序模式描述了一種處理涉及包含給定范圍內(nèi)的數(shù)字的數(shù)組問題的有趣方法。其一次遍歷數(shù)組一個數(shù)字,如果正在迭代的當(dāng)前數(shù)字不是正確的索引,則將其與正確索引處的數(shù)字交換。

應(yīng)用場景

  • 涉及給定范圍內(nèi)的數(shù)字的排序數(shù)組

  • 要求在已排序/旋轉(zhuǎn)的數(shù)組中找到缺失/重復(fù)/最小的數(shù)字

舉個栗子

  • 缺失數(shù)字(LEETCODE)[1]

  • 尋找重復(fù)數(shù)(LEETCODE)[2]

  • 缺失的第一個正數(shù)(LEETCODE)[3]

9、就地反轉(zhuǎn)鏈表

在許多問題中,可能會要求我們反轉(zhuǎn)鏈表的一組節(jié)點之間的鏈接。通常,約束就是需要就地執(zhí)行此操作,即使用現(xiàn)有節(jié)點對象而不使用額外內(nèi)存。這是上述模式有用的地方。

此模式一次反轉(zhuǎn)一個節(jié)點,從一個指向鏈表頭部的變量(當(dāng)前)開始,一個變量(上一個)將指向已處理的上一個節(jié)點。以鎖步方式,將通過將當(dāng)前節(jié)點指向前一個節(jié)點,然后再轉(zhuǎn)到下一個節(jié)點來反轉(zhuǎn)當(dāng)前節(jié)點。此外,更新變量“previous”以始終指向您已處理的上一個節(jié)點。

應(yīng)用場景

  • 就地反轉(zhuǎn)鏈表

舉個栗子

  • 反轉(zhuǎn)鏈表(LEETCODE)[4]

  • 反轉(zhuǎn)鏈表II(LEETCODE)[5]

10、Two heaps

在許多問題中,給出了一系列元素,需要我們將其分成兩部分。為了解決這個問題,我們想要知道一個部分中的最小元素和另一個部分中的最大元素。這種模式是解決此類問題的有效方法。

這種模式使用兩個堆:找到最小元素的Min Heap和找到最大元素的Max Heap。該模式的工作原理是將前半部分的數(shù)字存儲在Max Heap中,這是因為我們希望在上半部分找到最大的數(shù)字。然后將數(shù)字的后半部分存儲在Min Heap中,因為我們希望在后半部分找到最小的數(shù)字。在任何時候,可以從兩個堆的頂部元素計算當(dāng)前數(shù)字列表的中值。

應(yīng)用場景

  • 優(yōu)先隊列,調(diào)度等情況

  • 找到集合中的最小/最大/中值元素

  • 有時,在以二叉樹數(shù)據(jù)結(jié)構(gòu)為特征的問題中很有用

舉個栗子

  • 數(shù)據(jù)流的中位數(shù)(LEETCODE)[6]

  • 滑動窗口的最大值(劍指offer)[7]

11、Modified binary search

無論何時給定排序數(shù)組,鏈表或矩陣,并要求查找某個元素,你可以使用的最佳算法是二分搜索。此模式描述了處理涉及二分搜索的所有問題的有效方法。二分搜索這么經(jīng)典的思路我就不多介紹啦,直接看一個可視化復(fù)習(xí)一下

舉個栗子

  • 搜索旋轉(zhuǎn)排序數(shù)組(LEETCODE)[8]

  • 尋找兩個有序數(shù)組的中位數(shù)(LEETCODE)[9]

  • 尋找旋轉(zhuǎn)排序數(shù)組中的最小值(LEETCODE)[10]

12、Top K

任何要求我們在給定集合中找到最大/最小/頻繁“K”元素的問題都屬于這種模式。

跟蹤'K'元素的最佳數(shù)據(jù)結(jié)構(gòu)是Heap。這種模式將利用Heap來解決從一組給定元素一次處理'K'元素的多個問題。大致思路是這樣的:

  • 根據(jù)問題將'K'元素插入到最小堆或最大堆中;

  • 迭代剩余的數(shù)字,如果找到一個比堆中的數(shù)字大的數(shù)字,則刪除該數(shù)字并插入較大的數(shù)字

應(yīng)用場景

  • 要求找到給定集合的最大/最小/頻繁“K”元素;

  • 要求對數(shù)組進(jìn)行排序以找到確切的元素

舉個栗子

  • 前K個高頻元素(LEETCODE)[11]

  • 前K個高頻單詞(LEETCODE)[12]

  • 第k個排列(LEETCODE)[13]

13、K-way Merge

K-way Merge可以用于解決涉及一組排序數(shù)組的問題。

給出'K'排序數(shù)組,可以使用Heap有效地執(zhí)行所有數(shù)組的所有元素的排序遍歷。我們可以在Min Heap中push每個數(shù)組的最小元素以獲得最小值。獲得總體最小值后,將下一個元素從同一個數(shù)組推送到堆中。然后,重復(fù)此過程以對所有元素進(jìn)行排序遍歷。

應(yīng)用場景

  • 適用于排序的數(shù)組,列表或矩陣

  • 問題要求合并排序列表,在排序列表中查找最小元素等

舉個栗子

  • 合并兩個有序鏈表(LEETCODE)[14]

  • 合并K個排序鏈表(LEETCODE)[15]

  • 丑數(shù)系列(LEETCODE)[16]

14、Topological sort

拓?fù)渑判蛴糜诓檎冶舜艘蕾嚨脑氐木€性排序。例如,如果事件“B”依賴于事件“A”,則“A”在拓?fù)渑判蛑形挥凇癇”之前。流程大概是這樣的:

  • 初始化。

    • a) ?使用散列映射將圖存儲在鄰接表中

    • b) 要查找所有sources,使用HashMap維護(hù)入度的計數(shù)

  • 建立圖并找出所有頂點的入度

    • a) 從輸入構(gòu)建圖形并填充內(nèi)部HashMap

  • 查找所有的sources

    • 所有入度為“0”的節(jié)點被認(rèn)為是source,并存入隊列中

  • 排序

    • 將其添加到已排序列表中

    • 從圖中獲取它的所有子結(jié)點

    • 將每個子節(jié)點的入度減一

    • 如果某個子節(jié)點的入度為“0”,則將其加入隊列中

    • 對于每一個source,do:

    • 重復(fù)上述步驟直到隊列為空

應(yīng)用場景

  • 需要處理沒有定向循環(huán)的圖

  • 要求按排序順序更新所有對象

  • 如果有一組遵循特定順序的對象

舉個栗子

  • 課程表系列(LEETCODE)[17]

  • 矩陣中的最長遞增路徑(LEETCODE)[18]

  • 序列重建(LEETCODE)[19]

本文參考資料

[1]

缺失數(shù)字(LEETCODE): https://leetcode-cn.com/problems/missing-number/

[2]

尋找重復(fù)數(shù)(LEETCODE): https://leetcode-cn.com/problems/find-the-duplicate-number/

[3]

缺失的第一個正數(shù)(LEETCODE): https://leetcode-cn.com/problems/first-missing-positive/

[4]

反轉(zhuǎn)鏈表(LEETCODE): https://leetcode-cn.com/problems/reverse-linked-list/

[5]

反轉(zhuǎn)鏈表II(LEETCODE): https://leetcode-cn.com/problems/reverse-linked-list-ii/

[6]

數(shù)據(jù)流的中位數(shù)(LEETCODE): https://leetcode-cn.com/problems/find-median-from-data-stream/

[7]

滑動窗口的最大值(劍指offer): https://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788?tpId=13&tqId=11217&tPage=4&rp=4&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

[8]

搜索旋轉(zhuǎn)排序數(shù)組(LEETCODE): https://leetcode-cn.com/problems/search-in-rotated-sorted-array/

[9]

尋找兩個有序數(shù)組的中位數(shù)(LEETCODE): https://leetcode-cn.com/problems/median-of-two-sorted-arrays/

[10]

尋找旋轉(zhuǎn)排序數(shù)組中的最小值(LEETCODE): https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/

[11]

前K個高頻元素(LEETCODE): https://leetcode-cn.com/problems/top-k-frequent-elements/

[12]

前K個高頻單詞(LEETCODE): https://leetcode-cn.com/problems/top-k-frequent-words/

[13]

第k個排列(LEETCODE): https://leetcode-cn.com/problems/permutation-sequence/

[14]

合并兩個有序鏈表(LEETCODE): https://leetcode-cn.com/problems/merge-two-sorted-lists/

[15]

合并K個排序鏈表(LEETCODE): https://leetcode-cn.com/problems/merge-k-sorted-lists/

[16]

丑數(shù)系列(LEETCODE): https://leetcode-cn.com/problems/ugly-number-ii/

[17]

課程表系列(LEETCODE): https://leetcode-cn.com/problems/course-schedule/

[18]

矩陣中的最長遞增路徑(LEETCODE): https://leetcode-cn.com/problems/longest-increasing-path-in-a-matrix/

[19]

序列重建(LEETCODE): https://leetcode-cn.com/problems/sequence-reconstruction/

-?END?-

往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)在線手冊深度學(xué)習(xí)在線手冊AI基礎(chǔ)下載(pdf更新到25集)本站qq群1003271085,加入微信群請回復(fù)“加群”獲取一折本站知識星球優(yōu)惠券,請回復(fù)“知識星球”喜歡文章,點個在看 與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的【面试锦囊】14种模式搞定面试算法编程题(8-14)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 婷婷综合精品 | 亚洲图片一区二区三区 | 在线免费观看av网址 | 国产精品免费看 | 欧美激情片在线观看 | 欧美老熟妇乱大交xxxxx | 亚洲高清免费视频 | 午夜电影网一区 | 免费av看片 | 精产国品一区二区三区 | hs网站在线观看 | 91在线一区二区三区 | 日韩中文字 | 日本三级免费 | 精品动漫一区二区三区在线观看 | 亚洲欧美日本一区二区三区 | 男人的天堂伊人 | 日本黄色www | 日本成人片在线 | 夜晚福利| 午夜精品久久久久久久蜜桃 | a视频在线观看 | 芭乐视频色 | 91视频插插插 | www.五月激情 | 精品动漫一区 | 国产高清视频 | 国产精品免费av一区二区 | 91爱爱爱爱| 国模视频一区 | 狠狠热视频 | 成年人免费毛片 | 欧美性色a | 操欧美美女 | 免费观看视频一区二区 | 免费看60分钟黄视频 | 麻豆av网站| 日韩午夜激情 | 国产h视频在线 | 五月天国产在线 | 无码日韩精品一区二区 | 天天干天天干 | www.国产一区二区 | 无码人妻少妇伦在线电影 | 亚洲欧洲在线视频 | 亚洲国产精品无码久久久久高潮 | 亚洲国产天堂av | 一级片视频免费 | 国产精品边吃奶边做爽 | 国产精品二区一区二区aⅴ污介绍 | 精品久久BBBBB精品人妻 | 亚洲影院中文字幕 | 精品国产aⅴ麻豆 | 狠狠五月天 | 丰满人妻一区二区三区53号 | 精品免费一区二区 | 玖草在线 | 欧美日韩国产伦理 | 影音先锋国产 | 乖女从小调教h尿便器小说 欧美韩一区二区 | 亚洲一级Av无码毛片久久精品 | 欧美jizz18性欧美 | 伊人青青草视频 | 成人免费视频免费观看 | 一本大道伊人av久久综合 | 无码人妻丰满熟妇区五十路百度 | 国产一级淫片免费 | 在线视频激情小说 | 草草影院地址 | 欧美性生交xxxxxdddd | 日本a在线免费观看 | 精品国产乱码久久久久久浪潮 | 韩国日本美国免费毛片 | 午夜影视大全 | av大全网站 | 国产免费一区二区三区三州老师 | 日日骚av一区二区 | 国产成人精品国内自产拍免费看 | 少妇太紧太爽又黄又硬又爽小说 | 亚洲最新在线视频 | 天堂在线视频tv | 亚洲成在人 | 亚洲一区自拍偷拍 | 久久久久久激情 | 青少年xxxxx性开放hg | 夜夜涩 | 九九久久精品视频 | 国产主播啪啪 | 丁香啪啪| 中文天堂在线观看 | 欧美极品在线观看 | 免费人成在线观看 | 成人在线国产精品 | 亚洲精品乱 | 国产又粗又猛又爽69xx | 男人插入女人下面视频 | 好男人www日本 | av视屏| 中国女人毛片 |