精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

技術面試不發愁!從幾個小技巧中探析數據結構的樂趣

大數據
本文就將介紹一些適合在面試使用的優化代碼的小技巧。但在學習技巧之前,你得確保自己已經了解了簡單的數據結構,比如樹、堆、圖和哈希映射。

本文轉載自公眾號“讀芯術”(ID:AI_Discovery)

如果你即將要面臨大型科技公司的技術面試,那么數據結構和算法技巧方面的問題一定不能忘記準備。

本文就將介紹一些適合在面試使用的優化代碼的小技巧。但在學習技巧之前,你得確保自己已經了解了簡單的數據結構,比如樹、堆、圖和哈希映射。

注意,你要理解而不是僅僅記住它們。

[[327840]]

技巧1:針對“第K個最小/最大元素”問題的最小/最大堆

問題:給定一個數字列表,使用堆數據結構找到第三小的元素:

  1. [4,20,16,10,0,47,…] 

當以“查找列表中第K個最小元素”的形式提出問題時,由于問題語句中的“最小”一詞,自然會傾向于使用最小堆提出解決方案。這兒有一個簡單的解決方案:

技術面試不發愁!從幾個小技巧中探析數據結構的樂趣

構建給定列表的最小堆并調用extractMin() k次。這個解決方案的時間復雜度是O(n + kLogn),消耗了O(n)的額外內存。

想要優化內存和時間復雜度,這兒有一個更好的解決方案:

技術面試不發愁!從幾個小技巧中探析數據結構的樂趣
  • 從數組的前k個元素構建最大堆
  • 對于每個剩余的元素,將該元素與最大堆的根進行比較。如果它小于根,則用元素替換根并調用heapify()。
  • 完成了第二步,堆的根將是第k個最小的元素。

時間復雜度:O(k +(n-k)Logk)

  • 對于第K個最小的問題使用最大堆。
  • 對于第K個最大的問題使用最小堆。

注意:對于這個問題有不同的解決方案,可以使用快速選擇算法、中位數等。選擇堆是因為它們更容易理解和可視化。

技巧2:使用索引映射

索引映射是在技術面試中多次使用的一種技術,它以使用更多內存為代價來節省搜索時間。

問題:用O(1)搜索時間實現最小堆數據結構。

從簡單開始。只關注“搜索”部分,最小堆已經實現了。

技術面試不發愁!從幾個小技巧中探析數據結構的樂趣

這是一個最小堆,它被表示為如下數組:

  1. [0, 4, 16, 10, 20, 47] 

想找到給定節點的下標,比如說10。

對數組進行線性搜索,直到找到元素10,這將花費O(n)時間。但需要O(1)時間。也許是因為想要更新這個節點的值,正在執行大量的更新,所以不想花時間去尋找元素。

很明顯,除非犧牲一些資源,否則不可能神奇地擁有O(1)搜索時間。我們可以在哈希映射中保留每個節點的索引。無論何時更新堆,都需要更新這個散列映射上的索引。

對于上面的堆[0,4,16,10,20,47],索引映射為:

  1. 0:0, 
  2. 4:1, 
  3. 16:2 
  4. 10:3, 
  5. 20:4 
  6. 47:5 

現在我們可以求出節點10在O(1)時間內的位置。如果更改堆中元素的順序,還將更新它們在索引映射數據結構中的相對索引。

注意:可以使用其他的數據結構,例如索引映射的樹。

追問:能對指針/引用使用同樣的技術嗎?

技巧3:在O(1)時間內從無序數組中刪除一個元素

問題:在O(1)時間內移除[10,4,56,0,8,1]中的元素“4”。

從數組中刪除一個特定的元素時,所有后續的元素都向左移動,這將花費O(n)個時間。這很完美,而且是最常用的技術,它保留了數組的順序。

但如果你不在意元素的順序,有一個更簡單的方法可以實現O(1)時間內“刪除”:用數組的最后一個元素替換要刪除的元素。然后將數組大小減小1。

對于上面這個例子,刪除“4”就可以寫成:

  1. [10, 1, 56, 0, 8, 1] #用最后一個元素“1”替換“4” 
  2. [10, 1, 56, 0, 8] #減少數組大小1。 

追問:如果在意順序呢?可以將其保存在不同的數據結構中嗎?

技巧4:了解二分查找的基本原理

二分查找不僅僅是為了在一個有序數組中找到一個元素,它有著更強大的力量。一旦理解了它的基本原理,就會被能用它解決的問題的能力所折服。

問題:

農民約翰新建了一個有N個畜欄的倉房。給定一個大小為N的整數數組A,其中數組中的每個元素表示畜欄的位置,整數B表示奶牛的數量。他的奶牛不喜歡這個倉房的布局,這使它們在倉庫中變得很有攻擊性。為了防止奶牛互相傷害,約翰想把奶牛分配到畜欄里。

[[327842]]

圖源:unsplash

約翰想使它們之間的最小距離盡可能大。那么這個最小距離的最大值是多少?我們能用二分查找法解決這個問題嗎?

當然可以。閱讀這篇關于topcoder的文章,你將會明白該怎樣具體操作:

mailto:https://www.topcoder.com/community/competitive-programming/tutorials/binary-search

技巧5:位操作

位操作是優化代碼(主要是內存)的一種有用技術,可以用于各種問題,你可以使用移位、和/或/異或/非操作。

以下是你必須了解的比特操作:

  1. x ^ x = 0 
  2. x ^ 0 = x 
  3. x | 0 = x 
  4. x & 1 = xGet i th bit on num: (num & (1 << i)) != 0 
  5. Set i th bit on num: num |= 1 << i 

問題:給定一個整數數組,除了一個元素外,其他元素都出現兩次。找到這個元素。

  1. Sample input: [1, , 8, 1, 8] 
  2. Output: 0 

你當然可以使用哈希表或其他技術來解決這個問題,但我有一個更簡單的方法。我們給到的是x ^ 0 =x和x ^ x =0。如果對數組的所有元素進行XOR操作,重復的元素會相互抵消(x ^ x = 0),最后,會得到不重復的元素:

  1. arr = [1, 0, 8, 1, 8] 
  2. result = 0for num in arr: 
  3.   result ^= numreturn result 

這將只花費O(n)時間和O(1)內存。

[[327843]]

圖源:unsplash

技巧的意義體現在實際操作之中,快去試試用它們解答面試問題吧,你會大有收獲的。

 

 

責任編輯:趙寧寧 來源: 讀芯術
相關推薦

2015-02-04 10:32:57

Objective-CSwift

2011-01-19 09:07:20

Thunderbird

2010-09-09 09:44:34

辦公室組網

2022-11-16 09:04:36

SQL查詢SELECT

2022-08-18 10:01:35

Jmeter技巧

2020-06-30 10:38:36

Python 開發編程語言

2021-02-10 07:00:07

WiFi無線路由器無線信道

2024-10-11 16:43:05

高并發數據結構技巧

2011-06-13 17:36:43

外鏈

2022-06-07 23:28:05

線程安全后端

2023-04-12 08:18:40

ChatGLM避坑微調模型

2011-07-05 14:59:17

java

2011-07-04 10:32:37

JAVA

2021-01-06 08:03:00

JavaScript數據結構

2019-10-29 08:59:16

Redis底層數據

2010-09-15 09:01:53

無線路由掉線問題

2011-08-01 17:02:43

傳真機推薦

2011-03-02 17:56:40

DB2數據庫

2023-08-09 08:00:00

數據倉庫數據架構

2022-04-06 07:32:41

Java運算符變量
點贊
收藏

51CTO技術棧公眾號

黑鬼狂亚洲人videos| 欧美一级淫片videoshd| www.av91| 正在播放木下凛凛xv99| aaa国产精品视频| 中文av字幕一区| 久久久久久久激情视频| 亚洲黄色av片| аⅴ资源新版在线天堂| 黄色亚洲在线| 欧美一区二区三区白人| 亚洲高清不卡一区| 精品国产xxx| 久久久久久毛片免费看 | 欧美情侣在线播放| 日本一区二区在线| 久久99国产综合精品免费| 在线精品自拍| 一区二区在线看| 91久久精品久久国产性色也91| 欧美老女人性生活视频| 肉色欧美久久久久久久免费看| www.色综合.com| 欧美激情中文字幕乱码免费| 国产一级二级av| 黄色一级大片在线免费看产| 麻豆91精品视频| 中文字幕欧美日韩va免费视频| 日韩欧美xxxx| 免费在线性爱视频| 水蜜桃久久夜色精品一区的特点| 日韩精品在线观看一区| 成年人视频网站免费观看| 天天干天天插天天操| 99这里有精品| 日韩精品高清在线| 日韩欧美在线播放视频| 免费黄色片在线观看| 日韩在线一二三区| 综合136福利视频在线| 极品粉嫩美女露脸啪啪| 国产午夜精品久久久久免费视| 精品在线亚洲视频| 久久电影一区二区| 日本天堂在线播放| 蜜桃av在线播放| 国产亚洲婷婷免费| 国产日本欧美在线观看| 久久久久亚洲AV成人| 一区三区自拍| 色老汉av一区二区三区| 亚洲欧美日韩在线综合| av免费在线不卡| 亚洲激情国产| 亚洲亚裔videos黑人hd| 亚洲国产人成综合网站| 一本色道久久88综合日韩精品 | 亚洲麻豆一区| 国产亚洲欧美另类中文| 中文字幕在线视频精品| 中文字幕伦理免费在线视频| 成人免费视频视频| 国产成人精品久久久| 老司机精品免费视频| 精品国产第一国产综合精品| 亚洲成人自拍偷拍| 日韩中文字幕一区| 亚洲精品一区二区三区四区| 性色一区二区三区| 日韩视频永久免费观看| 动漫美女无遮挡免费| 成人勉费视频| 亚洲另类一区二区| 欧美极品色图| 国产aⅴ爽av久久久久成人| 99热这里只有成人精品国产| 中文字幕成人精品久久不卡| 免费观看黄网站| 精品3atv在线视频| 又紧又大又爽精品一区二区| www.日韩视频| 国产精品九九久久久久久久| 18岁成人毛片| 免费一区二区三区视频导航| 欧美影片第一页| 美女黄色免费看| 电影av在线| 国产经典欧美精品| 国产999在线观看| 好吊日在线视频| 免费一区二区| 精品国产一区二区三区av性色| 搡女人真爽免费午夜网站| 成人影欧美片| 日本一区二区三区四区| 国产区一区二区三区| 在线免费观看中文字幕| 亚洲综合国产| 久久久久久久一| 国产美女福利视频| 久久成人av| 亚洲第一福利视频| 一级黄色大片免费看| 欧美性www| 欧洲精品一区二区三区在线观看| 人妻无码久久一区二区三区免费 | caoporm超碰国产精品| 国产在线日韩在线| 亚洲av无码精品一区二区| 亚洲福利国产| 久国内精品在线| 欧美偷拍第一页| 欧美国产一级| 在线a欧美视频| 婷婷色一区二区三区| 午夜先锋成人动漫在线| 亚洲国产精品高清久久久| 秋霞午夜鲁丝一区二区| 不卡的国产精品| 欧美日本在线播放| 色婷婷.com| 国产资源一区| 欧美日韩一区在线| 天天插天天操天天射| 香蕉成人影院| 欧美少妇xxx| 小泽玛利亚视频在线观看| 秋霞国产精品| 欧美三区免费完整视频在线观看| 免费av网址在线| 性感女国产在线| 欧美日韩中文字幕在线视频| 北条麻妃在线视频观看| 超碰国产一区| 色av一区二区| 免费一区二区三区在线观看| 欧洲午夜精品| 日韩精品一区二区三区四区视频| 在线观看欧美一区二区| 在这里有精品| 亚洲国产成人在线视频| 国产成人无码一区二区在线观看| 竹菊久久久久久久| 中文字幕日韩av电影| 欧美激情精品久久久久久免费| 国产精品91一区二区三区| 欧美剧在线观看| 日本少妇性高潮| 老司机午夜精品视频在线观看| 国产精品久久久久久久久久东京| 国产又粗又黄视频| 国产成+人+日韩+欧美+亚洲| 黄色小网站91| 国产天堂在线| 亚洲视频综合在线| 日韩伦理在线免费观看| 精品网站在线| 日韩一级片在线播放| 超碰caoprom| 国产精品探花在线观看| 日韩在线观看av| 天堂资源在线播放| 青草av.久久免费一区| 亚洲最大成人网色| 秋霞av在线| 亚洲丝袜另类动漫二区| 精品中文字幕av| 亚洲一区av| 精品在线小视频| 国产精品国产精品88| 国产视频一区免费看| 91精品久久久久久久久青青 | 国产精品一区不卡| 蜜桃久久精品乱码一区二区| 久久综合之合合综合久久| 图片区日韩欧美亚洲| 色综合色综合色综合色综合| 福利片一区二区| 日韩在线免费av| 看片网址国产福利av中文字幕| 久久精品国产亚洲aⅴ| 精品无码久久久久国产| www红色一片_亚洲成a人片在线观看_| 日韩欧美视频一区二区三区| 手机看片国产精品| 日韩高清欧美| 欧美性一区二区三区| www.色亚洲| 国产精品成人在线观看| 人妻有码中文字幕| 荡女精品导航| 久久综合伊人77777尤物| 日韩欧美国产另类| 99久久99久久久精品齐齐| 毛片av在线播放| 99久久久国产| 最近中文字幕日韩精品| 日韩电影在线观看一区二区| 成人黄色网址在线观看| 女同性恋一区二区| 欧美高清影院| 这里只有视频精品| 久久永久免费视频| 久久天堂av综合合色蜜桃网| 超碰成人免费在线| 国产一区二区久久久久| www.欧美精品| 一级淫片免费看| 国产日韩影视精品| 久久精品.com| 国产99亚洲| 欧美主播福利视频| 色视频在线看| 欧美午夜影院在线视频| 成人无码www在线看免费| 亚洲日本黄色| 九色91在线视频| 久久影院午夜精品| 国产视频久久久久久久| av中文在线播放| 2023国产精品视频| 成人小视频在线看| 国产一区二区三区电影在线观看 | 日韩在线观看免费高清| 国产又黄又猛又爽| 亚洲精品少妇30p| 日本wwww色| 欧美一区二区三区久久精品茉莉花 | 精品国产一区二区三区av性色| 久久精品视频久久| 91香蕉视频mp4| 任你操这里只有精品| 精品产国自在拍| 国产精品一区二区久久久久| 在线观看h片| 91精品国产91久久久久久一区二区 | 毛葺葺老太做受视频| 成人精品中文字幕| 成人av在线亚洲| 欧美xxxx做受欧美88bbw| 精品国产3级a| 日本中文字幕第一页| 国产精品色呦呦| 九色91porny| 亚洲精选久久| 性欧美大战久久久久久久免费观看| 成人午夜一级| 欧美成人免费在线观看| 神马午夜一区二区| 一本色道综合亚洲| 国产白丝一区二区三区 | 亚洲激情偷拍| 少妇精品久久久久久久久久| 99综合久久| 亚洲3p在线观看| av在线中文| 亚洲精品在线免费观看视频| 亚洲毛片一区二区三区| 亚洲丝袜自拍清纯另类| 中文字幕在线免费看线人| 蜜臀av国产精品久久久久| 日韩欧美一级在线| 亚洲三级性片| 亚洲综合视频1区| 免费成人动漫| 久久国产精品久久久| 欧美zozo| 日韩午夜在线观看视频| 精品不卡一区二区| 一区二区三区在线免费视频| 欧美多人猛交狂配| 国产99久久久国产精品免费看| 免费裸体美女网站| 激情欧美丁香| 一本一道久久久a久久久精品91| 国产女人18毛片水真多18精品| 国产精品私拍pans大尺度在线| av漫画网站在线观看| y97精品国产97久久久久久| 深夜福利在线看| 欧美mv日韩mv亚洲| 国产又粗又黄又爽视频| 色一情一伦一子一伦一区| 久久精品一区二区三| 国产精品女主播在线观看| 欧美 日本 国产| 成人美女在线观看| 男生操女生视频在线观看| 久久久久久久波多野高潮日日| 精品久久久无码人妻字幂| 日韩久久精品| 日本一区视频在线观看| 国产成人在线中文字幕| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲综合av一区二区三区| 午夜伦理精品一区| 青青草原av在线| 久久久精品美女| 色三级在线观看| 一个人看的www久久| 男女视频在线观看| 亚洲男女自偷自拍图片另类| 天堂在线资源网| 亚洲第一男人天堂| 亚洲欧美黄色片| 欧美成人一区二区三区 | 亚洲成人av中文字幕| 国产成人三级一区二区在线观看一 | 久久精品久久久久久国产 免费| 国产h视频在线观看| 亚洲人成在线观看网站高清| 午夜成人免费影院| 日韩电影中文字幕在线| 婷婷丁香一区二区三区| 亚洲国产天堂久久综合| www.av导航| 欧美成人猛片aaaaaaa| 亚洲国产成人精品一区二区三区| 91精品国产综合久久久久 | 亚洲а∨天堂久久精品喷水 | 国产成人av电影| 337p日本欧洲亚洲大胆张筱雨 | 99三级在线| 一区二区中文字幕在线观看| 国产精品久久久久久久天堂第1集| 一区二区三区在线免费看| 国产精品一区二区三区四区五区| 99re8这里有精品热视频8在线| 国产伦精品一区二区三区视频孕妇| 91精品尤物| 久久香蕉综合色| 国产videos久久| 在线观看精品视频| 午夜激情一区| 欧美大片在线播放| 日韩精彩视频在线观看| 久久国产激情视频| 国产乱一区二区| av av在线| 久久精品一区二区| 成人黄色短视频| 一区二区三区四区乱视频| 黄色小视频在线免费看| 一本到不卡精品视频在线观看| 一级片视频在线观看| 欧美日韩精品免费观看视频| 国产成年妇视频| 日韩精品在线免费| 黄色在线视频网站| 97超级碰碰人国产在线观看| 亚洲第一影院| 91色中文字幕| 亚洲97av| 黑人巨大国产9丨视频| 一区在线观看| 国产高清视频网站| 丁香激情综合国产| 精品国产成人亚洲午夜福利| 亚洲欧洲www| 91看片在线播放| 欧美日韩国产小视频在线观看| 亚洲第一天堂影院| 中国china体内裑精亚洲片| 女子免费在线观看视频www| 国产成人av网址| 亚洲国产一区二区三区网站| 欧美午夜精品久久久久免费视| 91成人精品视频| 免费av网址在线| 懂色av一区二区三区蜜臀| 天天摸日日摸狠狠添| 亚洲一区二区三区自拍| 中文字幕乱码中文字幕| 亚洲国产精品一区二区三区| 人人干在线视频| 欧美孕妇孕交黑巨大网站| 国产视频一区二区在线播放| 免费成人在线观看av| 欧美黄色大片网站| www.天天射.com| 99久久精品国产网站| 乱h高h女3p含苞待放| 欧洲精品中文字幕| 四虎精品在永久在线观看| 久久国产精品免费视频| 九九热线视频只有这里最精品| 国产精品视频入口| 亚洲欧美综合久久久| 中文字幕第80页| 久久综合久久综合九色| 国产精品成人aaaa在线| 91精品国产综合久久精品性色| 91xxx在线观看| 日韩免费在线视频| 中国av一区| 成年人视频网站免费观看| a级高清视频欧美日韩| 久久视频免费看| 日韩欧美一二三四区| 国产色在线观看|