程序員代碼面試指南:IT名企算法與數據結構題目最優解 程序员代码面试指南:IT名企算法与数据结构题目最优解

左程雲

  • 出版商: 電子工業出版社
  • 出版日期: 2015-09-01
  • 定價: CNY $79.00
  • 售價: $474
  • 貴賓價: 9.5$450
  • 語言: 簡體中文
  • 頁數: 513
  • 裝訂: 平裝
  • ISBN: 7121270110
  • ISBN-13: 9787121270116

下單後立即進貨 (4週~6週)

買這商品的人也買了...

產品描述

<內容簡介>

這是一本程序員面試寶典!書中對IT名企代碼面試各類題目的最優解進行了總結,並提供了相關代碼實現。針對當前程序員面試缺乏權威題目匯總這一痛點,本書選取將近200道真實出現過的經典代碼面試題,幫助廣大程序員的面試準備做到萬無一失。“刷”完本書後,你就是“題王”!本書採用題目+解答的方式組織內容,並把麵試題類型相近或者解法相近的題目盡量放在一起,讀者在學習本書時很容易看出面試題解法之間的聯繫,使知識的學習避免碎片化。書中將所有的面試題從難到易依次分為“將、校、尉、士”四個檔次,方便讀者有針對性地選擇“刷”題。

本書所收錄的所有面試題都給出了最優解講解和代碼實現,並且提供了一些普通解法和最優解法的運行時間對比,讓讀者真切地感受到最優解的魅力!本書中的題目全面且經典,更重要的是,書中收錄了大量獨家題目和最優解分析,這些內容源自筆者多年來“死磕自己”的深入思考。碼農們,你們做好準備在IT名企的面試中脫穎而出、一舉成名了嗎?這本書就是你應該擁有的“神兵利器”。當然,對需要提升算法和數據結構等方面能力的程序員而言,本書的價值也是顯而易見的。

<章節目錄>

第1章棧和隊列
設計一個有getMin功能的棧(士★☆☆☆)
由兩個棧組成的隊列(尉★★☆☆)
如何僅用遞歸函數和棧操作逆序一個棧(尉★★☆ ☆)
貓狗隊列(士★☆☆☆)
用一個棧實現另一個棧的排序(士★☆☆☆)
用棧來求解漢諾塔問題(校★★★☆)
生成窗口最大值數組(尉★★☆☆)
構造數組的MaxTree(校★★★☆)
求最大子矩陣的大小(校★★★☆)
最大值減去最小值小於或等於num的子數組數量(校★★★☆)
第2章鍊錶問題
打印兩個有序鍊錶的公共部分(士★☆☆☆)
在單鍊錶和雙鍊錶中刪除倒數第K個節點(士★☆☆☆)
刪除鍊錶的中間節點和a
反轉單向和雙向鍊錶(士★☆☆☆)
反轉部分單向鍊錶(士★☆☆☆)
環形單鍊錶的約瑟夫問題(原問題:士★☆☆☆進階:校★★★☆)
判斷一個鍊錶是否為迴文結構(普通解法士★☆☆☆)(進階解法尉★★☆☆)
將單向鍊錶按某值劃分成左邊小、中間相等、右邊大的形式(尉★★☆ ☆)
複製含有隨機指針節點的鍊錶(尉★★☆☆)
兩個單鍊錶生成相加鍊錶(士★☆☆☆)
兩個單鍊錶相交的一系列問題(將★★★★)
將單鍊錶的每K個節點之間逆序(尉★★☆☆)
刪除無序單鍊錶中值重複出現的節點(士★☆☆☆)
在單鍊錶中刪除指定值的節點(士★☆☆☆)
將搜索二叉樹轉換成雙向鍊錶(尉★★☆☆)
單鍊錶的選擇排序(士★☆☆☆)
一種怪異的節點刪除方式(士★☆☆☆)
向有序的環形單鍊錶中插入新節點(士★☆☆☆)
合併兩個有序的單鍊錶(士★☆☆☆)
按照左右半區的方式重新組合單鍊錶(士★☆☆☆)
第3章二叉樹問題
分別用遞歸和非遞歸方式實現二叉樹先序、中序和後序遍歷(校★★★☆)
打印二叉樹的邊界節點(尉★★☆☆)
如何較為直觀地打印二叉樹(尉★★☆☆)
二叉樹的序列化和反序列化(士★☆☆☆)
遍歷二叉樹的神級方法(將★★★★)
在二叉樹中找到累加和為指定值的最長路徑長度(尉★★☆☆)
找到二叉樹中的最大搜索二叉子樹(尉★★☆☆)
找到二叉樹中符合搜索二叉樹條件的最大拓撲結構(校★★★☆)
二叉樹的按層打印與ZigZag打印(尉★★☆☆)
調整搜索二叉樹中兩個錯誤的節點(原問題:尉★★☆☆)
(進階問題:將★★★★)
判斷t1樹是否包含t2樹全部的拓撲結構(士★☆☆☆)
判斷t1樹中是否有與t2樹拓撲結構完全相同的子樹(校★★★☆)
判斷二叉樹是否為平衡二叉樹(士★☆☆☆)
根據後序數組重建搜索二叉樹(士★☆☆☆)
判斷一棵二叉樹是否為搜索二叉樹和完全二叉樹(士★☆☆☆)
通過有序數組生成平衡搜索二叉樹(士★☆☆☆)
在二叉樹中找到一個節點的後繼節點(尉★★☆☆)
在二叉樹中找到兩個節點的最近公共祖先(原問題:士★☆☆☆)
(進階問題:尉★★☆☆再進階問題:校★★★☆)
Tarjan算法與並查集解決二叉樹節點間最近公共祖先的批量查詢問題(校★★★☆)
二叉樹節點間的最大距離問題(尉★★☆☆)
先序、中序和後序數組兩兩結合重構二叉樹(先序與中序結合士★☆☆☆)
(中序與後序結合士★☆☆☆先序與後序結合尉★★☆☆)
通過先序和中序數組生成後序數組(士★☆☆☆)
統計和生成所有不同的二叉樹(尉★★ ☆☆)
統計完全二叉樹的節點數(尉★★☆☆)
第4章遞歸和動態規劃
斐波那契系列問題的遞歸和動態規劃(將★★★★)
矩陣的最小路徑和(尉★★ ☆☆)
換錢的最少貨幣數(尉★★☆☆)
換錢的方法數(尉★★☆☆)
最長遞增子序列(校★★★☆)
漢諾塔問題(校★★★☆)
最長公共子序列問題(尉★★☆☆)
最長公共子串問題(校★★★☆)
最小編輯代價(校★★★☆)
字符串的交錯組成(校★★★☆)
龍與地下城遊戲問題(尉★★☆☆)
數字字符串轉換為字母組合的種數(尉★★☆☆)
表達式得到期望結果的組成種數(校★★★☆)
排成一條線的紙牌博弈問題(尉★★☆☆)
跳躍遊戲(士★☆☆☆)
數組中的最長連續序列(尉★★☆☆)
N皇後問題(校★★★☆)
第5章字符串問題
判斷兩個字符串是否互為變形詞(士★☆☆☆)
字符串中數字子串的求和(士★☆☆☆)
去掉字符串中連續出現k個0的子串(士★☆☆☆)
判斷兩個字符串是否互為旋轉詞(士★☆☆☆)
將整數字符串轉成整數值(尉★★☆☆)
替換字符串中連續出現的指定字符串(士★☆☆☆)
字符串的統計字符串(士★☆☆☆)
判斷字符數組中是否所有的字符都只出現過一次
(按要求1實現的方法士★☆☆☆)
(按要求2實現的方法尉★★☆☆)
在有序但含有空的數組中查找字符串(尉★★☆☆)
字符串的調整與替換(士★☆☆☆)
翻轉字符串(士★☆☆☆)
數組中兩個字符串的最小距離(尉★★☆☆)
添加最少字符使字符串整體都是迴文字符串(校★★★☆)
括號字符串的有效性和最長有效長度(原問題士★☆☆☆)
(補充問題尉★★☆☆)
公式字符串求值(校★★★☆)
0左邊必有1的二進製字符串數量(校★★★☆)
拼接所有字符串產生字典順序最小的大寫字符串(校★★★☆)
找到字符串的最長無重複字符子串(尉★★☆☆)
找到被指的新類型字符(士★☆☆☆)
最小包含子串的長度(校★★★☆)
迴文最少分割數(尉★★★☆)
字符串匹配問題(校★★★☆)
字典樹(前綴樹)的實現(尉★★☆☆)
第6章大數據和空間限制
認識布隆過濾器(尉★★☆☆)
只用2GB內存在20億個整數中找到出現次數最多的數(士★☆☆☆)
40億個非負整數中找到沒出現的數(尉★★☆☆)
找到100億個URL中重複的URL以及搜索詞彙的topK問題(士★☆☆☆)
40億個非負整數中找到出現兩次的數和所有數的中位數(尉★★☆☆)
一致性哈希算法的基本原理(尉★★☆☆)
第7章位運算
不用額外變量交換兩個整數的值(士★☆☆☆)
不用任何比較判斷找出兩個數中較大的數(校★★★☆)
只用位運算不用算術運算實現整數的加減乘除運算(尉★★☆☆)
整數的二進製表達中有多少個1(尉★★☆☆)
在其他數都出現偶數次的數組中找到出現奇數次的數(尉★★☆☆)
在其他數都出現k次的數組中找到只出現一次的數(尉★★☆☆)
……
第8章數組和矩陣問題
第9章其他題目