互聯(lián)網(wǎng)大廠offer收割之數(shù)組及相關(guān)面試題解決方法

更多面試題請關(guān)注頭條號皮璧、微信號: itworld123

數(shù)組是所有數(shù)據(jù)結(jié)構(gòu)中最簡單的數(shù)據(jù)結(jié)構(gòu)了疑俭,很多復雜的數(shù)據(jù)結(jié)構(gòu)依賴數(shù)組實現(xiàn),比如哈希表等伍玖。數(shù)組是一個連續(xù)的內(nèi)存空間,因此我們可以一次定位其中的元素窍箍,也就是其查找是O(1)時間復雜度旷祸。

因此,數(shù)組相關(guān)的面試題也是最多的姻乓。很多面試官喜歡問數(shù)組相關(guān)的面試題五辽,如果大家上力扣就會發(fā)現(xiàn)數(shù)組面試題是最多的。這主要是因為杆逗,數(shù)組的面試題可易,可難罪郊,因此面試起來非常自如。

數(shù)組的面試題歸結(jié)起來其實就是對數(shù)組的各種遍歷和操作尚洽。遍歷就是查找了,核心是二分查找腺毫;操作就是對數(shù)組元素的移動和刪除等操作。下面我們通過幾個經(jīng)典的面試題介紹一下數(shù)組面試題的解法潮酒。

兩數(shù)之和(基本遍歷類)

給定一個整數(shù)數(shù)組array和一個目標值 target睛挚,在該數(shù)組中找出和為目標值的那兩個整數(shù)并返回他們的下標。為了簡化問題急黎,我們可以假設(shè)數(shù)組中只有一對答案扎狱。為了明確問題侧到,我們舉一個具體的例子。假設(shè)數(shù)組為[1, 3, 5, 7], target = 8

在上述數(shù)組中3+5=8淤击,因此返回 [1, 2]匠抗,也就是數(shù)組的下標。

該面試題是一個典型的數(shù)組遍歷類的問題污抬,最簡單暴力的解法是對數(shù)組中的每一個元素進行遍歷配對汞贸,找到合適的結(jié)果。但是這種情況的時間復雜度太高壕吹,通常不能通過面試著蛙。為了讓大家清楚,我們還是介紹一下該算法耳贬。

圖2 遍歷目標

如圖2所示踏堡,我們逐次遍歷數(shù)組中的元素,并將其與后面的元素進行對比咒劲,判斷是否有符合要求的元素對顷蟆。實現(xiàn)算法如下所示,該算法耗時很長腐魂,大家可以在力扣測試一下帐偎。


image

另外一種解法是借助哈希表,因為哈希表幾乎可以在O(1)的時間復雜度找到元素蛔屹,因此我們可以通過空間來換時間削樊。具體方法是在遍歷數(shù)組的時候,首先判斷哈希表中是否有可以與當前元素配對的元素兔毒,如果沒有則將該元素加入哈希表中(為后面查找做準備)漫贞,如果有則說明找到了元素對。具體代碼實現(xiàn)如下所示育叁。

image

移除元素

假設(shè)有一個數(shù)組array迅脐,數(shù)組中的值是不確定的,然后給定目標值target豪嗽。移除數(shù)組中所有值為target的元素谴蔑。最后返回移除滿足要求的元素后的新數(shù)組的長度。附加要求:不使用輔助空間龟梦,僅使用O(1)空間的情況下對原始數(shù)組進行修改完成該題目隐锭。

例如下面一個數(shù)組,假設(shè)目標數(shù)為5计贰,那么直觀的思路是找到該元素之后將后面的所有元素向前移動蹦玫,并覆蓋掉找到的元素即可。

圖3 移除元素

但是上述算法最大的問題是時間復雜度太高,如果數(shù)組很長的話將非常耗時福贞。其實我們可以變換一下挖帘。比如當我們發(fā)現(xiàn)目標元素的時候并不馬上用后面元素覆蓋,而是標記下來逻族;在遍歷后面元素的時候如果后面元素不等于目標元素則將其覆蓋掉標記的元素骄崩,然后將標記后移要拂,以此類推。這就是所謂的雙指針法搏嗡,這是一個通用方法拉一,很多地方可以用到舅踪。具體如圖所示。

圖4 雙指針示意

有了上述思路悍赢,代碼實現(xiàn)就非常簡單了左权。下面是具體的代碼實現(xiàn)赏迟。

image

整數(shù)加一(本地操作)

給定一個由整數(shù)組成的非空數(shù)組所表示的非負整數(shù)锌杀,在該數(shù)的基礎(chǔ)上加一。最高位數(shù)字存放在數(shù)組的首位糕再, 數(shù)組中每個元素只存儲單個數(shù)字。假設(shè)除了整數(shù) 0 之外殴蹄,這個整數(shù)不會以零開頭袭灯。下面給出2個具體的例子绑嘹,如圖所示。

圖5 實例說明

在圖5中有2個例子蛤克,上面的例子是整數(shù)135759加1构挤,由于末位是9筋现,因此會進位箱歧。下面這個例子是沒有進位的示例。

下面是一個C語言的代碼實現(xiàn)洒沦,算法比較簡單价淌,這里就不過多介紹了。

image

數(shù)組面試題集錦

1.盛最多水的容器

2.三數(shù)之和

3.四數(shù)之和

4.搜索旋轉(zhuǎn)排序數(shù)組

5.搜索插入位置

6.最大子序和

7.合并區(qū)間

8.合并兩個有序數(shù)組

9.楊輝三角

10.買賣股票的最佳時機

11.求眾數(shù)

12.旋轉(zhuǎn)數(shù)組

關(guān)于數(shù)組的面試題還很多括尸,本文主要是介紹了一些數(shù)組基本操作的內(nèi)容濒翻。其實還有很多比較復雜的面試題,比如動態(tài)規(guī)劃和回溯等淌喻。相關(guān)內(nèi)容可以參考本專欄的其它專題文章娶眷。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末届宠,一起剝皮案震驚了整個濱河市豌注,隨后出現(xiàn)的幾起案子灯萍,更是在濱河造成了極大的恐慌,老刑警劉巖齿风,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件救斑,死亡現(xiàn)場離奇詭異真屯,居然都是意外死亡,警方通過查閱死者的電腦和手機运沦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門携添,熙熙樓的掌柜王于貴愁眉苦臉地迎上來篓叶,“玉大人,你說我怎么就攤上這事向叉∧富眩” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵奇唤,是天一觀的道長。 經(jīng)常有香客問我甲葬,道長经窖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任画侣,我火速辦了婚禮配乱,結(jié)果婚禮上搬泥,老公的妹妹穿的比我還像新娘伏尼。我一直安慰自己,他們只是感情好休溶,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布兽掰。 她就那樣靜靜地躺著徒役,像睡著了一般。 火紅的嫁衣襯著肌膚如雪杉女。 梳的紋絲不亂的頭發(fā)上鸳吸,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音坎拐,去河邊找鬼。 笑死都伪,一個胖子當著我的面吹牛积担,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播先誉,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼谆膳,長吁一口氣:“原來是場噩夢啊……” “哼撮躁!你這毒婦竟也來了把曼?” 一聲冷哼從身側(cè)響起漓穿,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤晃危,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后震叮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苇瓣,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡击罪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年媳禁,在試婚紗的時候發(fā)現(xiàn)自己被綠了画切。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡光涂,死狀恐怖拧烦,靈堂內(nèi)的尸體忽然破棺而出恋博,到底是詐尸還是另有隱情,我是刑警寧澤债沮,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布硅蹦,位于F島的核電站,受9級特大地震影響童芹,放射性物質(zhì)發(fā)生泄漏鲤拿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窒升。 院中可真熱鬧异剥,春花似錦、人聲如沸冤寿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屉凯,卻和暖如春立帖,著一層夾襖步出監(jiān)牢的瞬間晓勇,已是汗流浹背绑咱。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工枢泰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留衡蚂,地道東北人毛甲。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像丽啡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子硬猫,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

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