發表於2024-11-23
如何在IT名企的麵試中脫穎而齣、一舉成名?《程序員代碼麵試指南:IT名企算法與數據結構題目解》就是你應該擁有的“神兵利器”。
對於每一個程序員來說,提升算法和數據結構等方麵的能力至關重要。無數碼農和編程愛好者“深陷”題海之中,無論你是為瞭代碼麵試、提升能力而不情願地刷題,還是愛好所緻沉迷於此,這都是你值得擁有的案頭書。
這裏有你在彆處找不到的優解分析,有高頻齣現在IT名氣代碼麵試中的真題,有讓人拍案驚嘆巧妙的題目解法,也有讓你工作中的編程難題迎刃而解的啓發……
《程序員代碼麵試指南:IT名企算法與數據結構題目解》是一本程序員麵試寶典!《程序員代碼麵試指南:IT名企算法與數據結構題目解》對IT名企代碼麵試各類題目的解進行瞭總結,並提供瞭相關代碼實現。針對當前程序員麵試缺乏專業題目匯總這一痛點,《程序員代碼麵試指南:IT名企算法與數據結構題目解》選取將近200道真實齣現過的經典代碼麵試題,幫助廣大程序員的麵試準備做到萬無一失。
《程序員代碼麵試指南:IT名企算法與數據結構題目解》采用題目+解答的方式組織內容,並把麵試題類型相近或者解法相近的題目盡量放在一起,讀者在學習本書時很容易看齣麵試題解法之間的聯係,使知識的學習避免碎片化。《程序員代碼麵試指南:IT名企算法與數據結構題目解》將所有的麵試題從難到易依次分為“將、校、尉、士”四個檔次,方便讀者有針對性地選擇“刷”題。《程序員代碼麵試指南:IT名企算法與數據結構題目解》所收錄的所有麵試題都給齣瞭解講解和代碼實現,並且提供瞭一些普通解法和解法的運行時間對比,讓讀者真切地感受到解的魅力!
《程序員代碼麵試指南:IT名企算法與數據結構題目解》中的題目全麵且經典,更重要的是,《程序員代碼麵試指南:IT名企算法與數據結構題目解》收錄瞭大量題目和解分析,這些內容源自筆者多年來“死磕自己”的深入思考。
碼農們,你們做好準備在IT名企的麵試中脫穎而齣、一舉成名瞭嗎?《程序員代碼麵試指南:IT名企算法與數據結構題目解》就是你應該擁有的“神兵利器”。當然,對需要提升算法和數據結構等方麵能力的程序員而言,價值也是顯而易見的。
左程雲,畢業於華中科技大學(本科)、芝加哥大學(碩士),先後就職於IBM、百度。自2010年起專注刷題至今。除刷題之外,興趣廣泛。
這本書不僅可以作為代碼麵試指南,還可以作為學生與程序員的輔助練習。作者刷題5年,悉數總結都沉澱在這本書裏,相信跟著他的引導,從頭到尾逐一攻剋一定會有所收獲。
——葉嚮宇牛客網CEO
如果你想快速地掌握算法題的解法技巧,那麼這本書一定適閤你!祝每一位勤奮努力的“程序猿”都能拿到自己滿意的Offer!
——周寶鑫一個程序員
本書選擇瞭具有代錶性的麵試題,從基本的數據結構到算法的深度優化,都選擇瞭很好的範例來詮釋,全部題目附有解答、可以運行的源代碼和測試用例,真心方便啊!難能可貴的是作者開創齣自己的一套化繁為簡的方法來解決問題,很適閤讀者理解。
——王曉坡北航數學係研究生
本書總結瞭各類型代碼麵試題目和網絡上齣現的高頻題,糾正瞭存在的錯誤並為每題給齣瞭方案。讓我們一起來進行一場腦力盛宴吧!
——張傑北交大刷題發燒友
左老師的這本書非常成功地通過簡單的例子將復雜的算法拆成一個個既實用又易懂的算法原型,方便算法初學者入門,也適於強化算法深造者進一步學習。我要是早兩年讀到這本書,就會省下許多寶貴的時間,也不至於走那麼多的彎路瞭。
——汪鈥柱北郵計算機係研究生
今年馬上麵臨找工作瞭,看到這本書真的感到特彆興奮!其中的題目全是麵試的高頻題,解法都是解,這樣的乾貨對於馬上要找工作的“碼農”來說是真正的福音!
——王鵬中國科學院大學計算機係研究生
作者三言兩語便說盡算法的精妙,深入淺齣地一網打盡各類麵試題型,不管是用於求職還是自我提升,都是不可多得的優質讀物。
——劉耀東高級軟件工程師
現如今,各大國內外IT名企無論是筆試還是上機,算法題都是必考。本書全是乾貨,作為麵試利器,深入淺齣,有的放矢。無論對於職場老兵還是初入職場的應屆生,都是一本難得的備考手冊。本書作者擁有海外求學與國內外名企經曆,熱愛和精通算法,深知名企的需求與求職者能力欠缺之間的“鴻溝”,而本書恰恰是一座連接兩者的“橋梁”,為本人多年來所讀麵試指導書籍。力薦!
——Haibo高級軟件工程師
本書涵蓋瞭互聯網公司麵試時的絕大多數算法題型,不僅是求職的好幫手,而且對實際的工作也很有指導意義。作者對題目的講解深入淺齣、鞭闢入裏,讀起來讓人耳目一新,不由得感慨,原來算法題要這樣做!
——付強百度高級研發工程師
第1章 棧和隊列 1
設計一個有getMin 功能的棧(士 ★☆☆☆) 1
由兩個棧組成的隊列(尉 ★★☆☆) 5
如何僅用遞歸函數和棧操作逆序一個棧(尉 ★★☆☆) 8
貓狗隊列(士 ★☆☆☆) 10
用一個棧實現另一個棧的排序(士 ★☆☆☆) 13
用棧來求解漢諾塔問題(校 ★★★☆) 14
生成窗口最大值數組(尉 ★★☆☆) 19
構造數組的MaxTree(校 ★★★☆) 22
求最大子矩陣的大小(校 ★★★☆) 26
最大值減去最小值小於或等於num 的子數組數量(校 ★★★☆) 31
第2章 鏈錶問題 34
打印兩個有序鏈錶的公共部分(士 ★☆☆☆) 34
在單鏈錶和雙鏈錶中刪除倒數第K 個節點(士 ★☆☆☆) 35
刪除鏈錶的中間節點和a/b 處的節點(士 ★☆☆☆) 38
反轉單嚮和雙嚮鏈錶(士 ★☆☆☆) 40
反轉部分單嚮鏈錶(士 ★☆☆☆) 42
環形單鏈錶的約瑟夫問題(原問題:士 ★☆☆☆ 進階:校 ★★★☆) 43
判斷一個鏈錶是否為迴文結構(普通解法 士 ★☆☆☆)(進階解法 尉 ★★☆☆) 48
將單嚮鏈錶按某值劃分成左邊小、中間相等、右邊大的形式(尉 ★★☆☆) 52
復製含有隨機指針節點的鏈錶(尉 ★★☆☆) 56
兩個單鏈錶生成相加鏈錶(士 ★☆☆☆) 59
兩個單鏈錶相交的一係列問題(將 ★★★★) 62
將單鏈錶的每K個節點之間逆序(尉 ★★☆☆) 68
刪除無序單鏈錶中值重復齣現的節點(士 ★☆☆☆) 71
在單鏈錶中刪除指定值的節點(士 ★☆☆☆) 73
將搜索二叉樹轉換成雙嚮鏈錶(尉 ★★☆☆) 74
單鏈錶的選擇排序(士 ★☆☆☆) 79
一種怪異的節點刪除方式(士 ★☆☆☆) 81
嚮有序的環形單鏈錶中插入新節點(士 ★☆☆☆) 82
閤並兩個有序的單鏈錶(士 ★☆☆☆) 84
按照左右半區的方式重新組閤單鏈錶(士 ★☆☆☆) 86
第3章 二叉樹問題 88
分彆用遞歸和非遞歸方式實現二叉樹先序、中序和後序遍曆(校 ★★★☆) 88
打印二叉樹的邊界節點(尉 ★★☆☆) 95
如何較為直觀地打印二叉樹(尉 ★★☆☆) 100
二叉樹的序列化和反序列化(士 ★☆☆☆) 103
遍曆二叉樹的神級方法(將 ★★★★) 107
在二叉樹中找到纍加和為指定值的最長路徑長度(尉 ★★☆☆) 115
找到二叉樹中的最大搜索二叉子樹(尉 ★★☆☆) 117
找到二叉樹中符閤搜索二叉樹條件的最大拓撲結構(校 ★★★☆) 119
二叉樹的按層打印與ZigZag 打印(尉 ★★☆☆) 129
調整搜索二叉樹中兩個錯誤的節點(原問題:尉 ★★☆☆)(進階問題:將 ★★★★) 134
判斷t1樹是否包含t2 樹全部的拓撲結構(士 ★☆☆☆) 140
判斷t1樹中是否有與t2 樹拓撲結構完全相同的子樹(校 ★★★☆) 141
判斷二叉樹是否為平衡二叉樹(士 ★☆☆☆) 144
根據後序數組重建搜索二叉樹(士 ★☆☆☆) 145
判斷一棵二叉樹是否為搜索二叉樹和完全二叉樹(士 ★☆☆☆) 147
通過有序數組生成平衡搜索二叉樹(士 ★☆☆☆) 150
在二叉樹中找到一個節點的後繼節點(尉 ★★☆☆) 151
在二叉樹中找到兩個節點的最近公共祖先(原問題:士 ★☆☆☆)(進階問題:尉 ★★☆☆ 再進階問題:校 ★★★☆) 153
Tarjan算法與並查集解決二叉樹節點間最近公共祖先的批量查詢問題(校 ★★★☆) 159
二叉樹節點間的最大距離問題(尉 ★★☆☆) 169
先序、中序和後序數組兩兩結閤重構二叉樹(先序與中序結閤 士 ★☆☆☆)(中序與後序結閤 士 ★☆☆☆ 先序與後序結閤 尉 ★★☆☆) 171
通過先序和中序數組生成後序數組(士 ★☆☆☆) 174
統計和生成所有不同的二叉樹(尉 ★★☆☆) 175
統計完全二叉樹的節點數(尉 ★★☆☆) 178
第4章 遞歸和動態規劃 181
斐波那契係列問題的遞歸和動態規劃(將 ★★★★) 181
矩陣的最小路徑和(尉 ★★☆☆) 187
換錢的最少貨幣數(尉 ★★☆☆) 191
換錢的方法數(尉 ★★☆☆) 196
最長遞增子序列(校 ★★★☆) 202
漢諾塔問題(校 ★★★☆) 206
最長公共子序列問題(尉 ★★☆☆) 210
最長公共子串問題(校 ★★★☆) 213
最小編輯代價(校 ★★★☆) 217
字符串的交錯組成(校 ★★★☆) 220
龍與地下城遊戲問題(尉 ★★☆☆) 223
數字字符串轉換為字母組閤的種數(尉 ★★☆☆) 225
錶達式得到期望結果的組成種數(校 ★★★☆) 228
排成一條綫的紙牌博弈問題(尉 ★★☆☆) 233
跳躍遊戲(士 ★☆☆☆) 235
數組中的最長連續序列(尉 ★★☆☆) 236
N皇後問題(校 ★★★☆) 238
第5章 字符串問題 242
判斷兩個字符串是否互為變形詞(士 ★☆☆☆) 242
字符串中數字子串的求和(士 ★☆☆☆) 243
去掉字符串中連續齣現k 個0 的子串(士 ★☆☆☆) 245
判斷兩個字符串是否互為鏇轉詞(士 ★☆☆☆) 247
將整數字符串轉成整數值(尉 ★★☆☆) 248
替換字符串中連續齣現的指定字符串(士 ★☆☆☆) 251
字符串的統計字符串(士 ★☆☆☆) 253
判斷字符數組中是否所有的字符都隻齣現過一次(按要求1 實現的方法 士 ★☆☆☆)(按要求2 實現的方法 尉 ★★☆☆) 255
在有序但含有空的數組中查找字符串(尉 ★★☆☆) 258
字符串的調整與替換(士 ★☆☆☆) 260
翻轉字符串(士 ★☆☆☆) 262
數組中兩個字符串的最小距離(尉 ★★☆☆) 266
添加最少字符使字符串整體都是迴文字符串(校 ★★★☆) 269
括號字符串的有效性和最長有效長度(原問題 士 ★☆☆☆)(補充問題 尉 ★★☆☆) 273
公式字符串求值(校 ★★★☆) 276
0 左邊必有1 的二進製字符串數量(校 ★★★☆) 278
拼接所有字符串産生字典順序最小的大寫字符串(校 ★★★☆) 281
找到字符串的最長無重復字符子串(尉 ★★☆☆) 284
找到被指的新類型字符(士 ★☆☆☆) 286
最小包含子串的長度(校 ★★★☆) 288
迴文最少分割數(尉 ★★★☆) 292
字符串匹配問題(校 ★★★☆) 294
字典樹(前綴樹)的實現(尉 ★★☆☆) 299
第6章 大數據和空間限製 303
認識布隆過濾器(尉 ★★☆☆) 303
隻用2GB 內存在20 億個整數中找到齣現次數最多的數(士 ★☆☆☆) . 308
40 億個非負整數中找到沒齣現的數(尉 ★★☆☆) 309
找到100 億個URL 中重復的URL 以及搜索詞匯的top K 問題(士 ★☆☆☆) 311
40 億個非負整數中找到齣現兩次的數和所有數的中位數(尉 ★★☆☆) 312
一緻性哈希算法的基本原理(尉 ★★☆☆) 313
第7章 位運算 317
不用額外變量交換兩個整數的值(士 ★☆☆☆) 317
不用任何比較判斷找齣兩個數中較大的數(校 ★★★☆) 318
隻用位運算不用算術運算實現整數的加減乘除運算(尉 ★★☆☆) 319
整數的二進製錶達中有多少個1(尉 ★★☆☆) 325
在其他數都齣現偶數次的數組中找到齣現奇數次的數(尉 ★★☆☆) 327
在其他數都齣現k 次的數組中找到隻齣現一次的數(尉 ★★☆☆) 329
第8章 數組和矩陣問題 331
轉圈打印矩陣(士 ★☆☆☆) 331
將正方形矩陣順時針轉動90°(士 ★☆☆☆) 333
“之”字形打印矩陣(士 ★☆☆☆) 335
找到無序數組中最小的k 個數(O(Nlogk)的方法 尉 ★★☆☆)(O(N)的方法 將 ★★★★) 336
需要排序的最短子數組長度(士 ★☆☆☆) 342
在數組中找到齣現次數大於N/K 的數(校 ★★★☆) 343
在行列都排好序的矩陣中找數(士 ★☆☆☆) 347
最長的可整閤子數組的長度(尉 ★★☆☆) 349
不重復打印排序數組中相加和為給定值的所有二元組和三元組(尉 ★★☆☆) 351
未排序正數數組中纍加和為給定值的最長子數組長度(尉 ★★☆☆) 354
未排序數組中纍加和為給定值的最長子數組係列問題(尉 ★★☆☆) 355
未排序數組中纍加和小於或等於給定值的最長子數組長度(校 ★★★☆) 358
計算數組的小和(校 ★★★☆) 361
自然數數組的排序(士 ★☆☆☆) 364
奇數下標都是奇數或者偶數下標都是偶數(士 ★☆☆☆) 366
子數組的最大纍加和問題(士 ★☆☆☆) 367
子矩陣的最大纍加和問題(尉 ★★☆☆) 368
在數組中找到一個局部最小的位置(尉 ★★☆☆) 371
數組中子數組的最大纍乘積(尉 ★★☆☆) 373
打印N 個數組整體最大的Top K(尉 ★★☆☆) 374
邊界都是1 的最大正方形大小(尉 ★★☆☆) 377
不包含本位置值的纍乘數組(士 ★☆☆☆) 380
數組的partition 調整(士 ★☆☆☆) 382
求最短通路值(尉 ★★☆☆) 384
數組中未齣現的最小正整數(尉 ★★☆☆) 386
數組排序之後相鄰數的最大差值(尉 ★★☆☆) 388
第9章 其他題目 390
從5 隨機到7 隨機及其擴展(原問題 尉 ★★☆☆ 補充問題 尉 ★★☆☆)(進階問題 校 ★★★☆) 390
一行代碼求兩個數的最大公約數(士 ★★☆☆) 394
有關階乘的兩個問題(原問題 尉 ★★☆☆ 進階問題 校 ★★★☆) 395
判斷一個點是否在矩形內部(尉 ★★☆☆) 398
判斷一個點是否在三角形內部(尉 ★★☆☆) 399
摺紙問題(尉 ★★☆☆) 402
蓄水池算法(尉 ★★☆☆) 404
設計有setAll 功能的哈希錶(士 ★☆☆☆) 406
最大的leftMax 與rightMax 之差的絕對值(校 ★★★☆) 408
設計可以變更的緩存結構(尉 ★★☆☆) 410
設計RandomPool 結構(尉 ★★☆☆) 414
調整[0,x)區間上的數齣現的概率(士 ★☆☆☆) 416
路徑數組變為統計數組(校 ★★★☆) 417
正數數組的最小不可組成和(尉 ★★☆☆) 422
一種字符串和數字的對應關係(校 ★★★☆) 426
1 到n 中1 齣現的次數(校 ★★★☆) 429
從N 個數中等概率打印M 個數(士 ★☆☆☆) 431
判斷一個數是否是迴文數(士 ★☆☆☆) 433
在有序鏇轉數組中找到最小值(尉 ★★☆☆) 434
在有序鏇轉數組中找到一個數(尉 ★★☆☆) 436
數字的英文錶達和中文錶達(校 ★★★☆) 439
分糖果問題(校 ★★★☆) 444
一種消息接收並打印的結構設計(尉 ★★☆☆) 448
設計一個沒有擴容負擔的堆結構(將 ★★★★) 451
隨時找到數據流的中位數(將 ★★★★) 462
在兩個長度相等的排序數組中找到上中位數(尉 ★★☆☆) 465
在兩個排序數組中找到第K 小的數(將 ★★★★) 468
兩個有序數組間相加和的TOP K 問題(尉 ★★☆☆) 471
齣現次數的TOP K 問題(原問題 尉 ★★☆☆ 進階問題 校 ★★★☆) 474
Manacher 算法(將 ★★★★) 483
KMP 算法(將 ★★★★) 491
丟棋子問題(校 ★★★☆) 498
畫匠問題(校 ★★★☆) 505
郵局選址問題(校 ★★★☆) 509
程序員代碼麵試指南:IT名企算法與數據結構題目最優解 下載 mobi epub pdf txt 電子書 格式程序員代碼麵試指南:IT名企算法與數據結構題目最優解 下載 mobi pdf epub txt 電子書 格式 2024
程序員代碼麵試指南:IT名企算法與數據結構題目最優解 下載 mobi epub pdf 電子書很棒的一本書,很喜歡左神
評分是準備今年校招買的
評分剛剛到的書,在快遞點拆開的發現被壓變形瞭,快遞點老闆讓我退貨。
評分拿來給自己充充電,學海無涯。
評分京東速度還是一如既往的快,好評
評分首先書肯定是正版的,然後京東物流真的快前一天晚上下單,第二天就收到瞭,而且包裝完整,還有就是這個價格真的實惠
評分聽彆人推薦購買,馬上就要開始找工作瞭,多點準備
評分書很好,很喜歡左神,講的題都是很典型的麵試題,對自己的思路開拓很重要,自己敲一遍會有更大的收獲
評分還沒有看,感覺書還不錯,是正版的喲。。。。
程序員代碼麵試指南:IT名企算法與數據結構題目最優解 mobi epub pdf txt 電子書 格式下載 2024