注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡操作系統(tǒng)算法面試

算法面試

算法面試

定 價:¥198.00

作 者: 李春葆、李筱馳
出版社: 清華大學出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787302673989 出版時間: 2024-10-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字數(shù):  

內(nèi)容簡介

  本書旨在幫助讀者更好地應對算法面試,提高算法和編程能力。書中按專題精選了LeetCode平臺的一系列的熱點算法題,并詳細解釋其求解思路和過程。全書分為三個部分,第Ⅰ部分為數(shù)據(jù)結(jié)構(gòu)及其應用,以常用數(shù)據(jù)結(jié)構(gòu)為主題,深入講解各種數(shù)據(jù)結(jié)構(gòu)的應用方法和技巧。第Ⅱ部分為算法策略及其應用,以基本算法設計方法和算法設計策略為主題,深入講解各種算法設計策略的應用方法和技巧。第Ⅲ部分為經(jīng)典問題及其求解,以實際中的一些問題為主題,深入講解這些問題多種求解方法。本書適合于需要進行算法面試的讀者,通過閱讀本書可以掌握算法面試中求解問題的方法和技巧,提升自己的算法技能和思維方式,從而在面試中脫穎而出。同時可以作為《數(shù)據(jù)結(jié)構(gòu)》和《算法設計與分析》課程的輔導書,也可以供各種程序設計競賽和計算機編程愛好者研習。目錄

作者簡介

  李春葆,計算機學院教授,主要研究方向:數(shù)據(jù)挖掘、人工智能和軟件工程。發(fā)表論文30余篇,主持和參加多項科研課題。著作教材多部。從事近30年C/C語言、數(shù)據(jù)結(jié)構(gòu)和算法設計等課程的第一線本科教學工作,具備豐富的教學經(jīng)驗,曾參與深圳名企的筆試和面試題庫建設。

圖書目錄

掃一掃
配套資源
 
第一部分數(shù)據(jù)結(jié)構(gòu)及其應用
第1章數(shù)組
1.1數(shù)組概述
1.1.1數(shù)組的定義
1.1.2數(shù)組的知識點
1.2數(shù)組的基本算法設計
1.2.1LeetCode27——移除元素★
1.2.2LeetCode283——移動0★
1.2.3LeetCode2460——對數(shù)組執(zhí)行操作★
1.2.4LeetCode75——顏色的分類★★
1.2.5LeetCode189——輪轉(zhuǎn)數(shù)組★★
1.3有序數(shù)組的算法設計
1.3.1LeetCode26——刪除有序數(shù)組中的重復項★
1.3.2LeetCode80——刪除有序數(shù)組中的重復項Ⅱ★★
1.3.3LeetCode1287——有序數(shù)組中出現(xiàn)次數(shù)超過元素總數(shù)25%的
元素★
1.3.4LeetCode1200——最小絕對差★
1.3.5LeetCode88——合并兩個有序數(shù)組★
1.3.6LeetCode349——兩個數(shù)組的交集★
1.3.7LeetCode977——有序數(shù)組的平方★
1.3.8LeetCode1470——重新排列數(shù)組★
1.3.9LeetCode1213——3個有序數(shù)組的交集★
1.3.10LeetCode264——丑數(shù)Ⅱ★★
1.3.11LeetCode373——查找和最小的k對數(shù)字★★
推薦練習題
第2章鏈表
2.1鏈表概述
2.1.1鏈表的定義
2.1.2鏈表的知識點
2.2鏈表基本操作的算法設計
2.2.1LeetCode203——移除鏈表元素★
2.2.2LeetCode206——反轉(zhuǎn)鏈表★
2.2.3LeetCode328——奇偶鏈表★★
2.2.4LeetCode61——旋轉(zhuǎn)鏈表★★
2.2.5LeetCode141——環(huán)形鏈表★
2.2.6LeetCode138——復制帶隨機指針的鏈表★★
2.2.7LeetCode707——設計鏈表★★
2.3鏈表的分組算法設計
2.3.1LeetCode92——反轉(zhuǎn)鏈表Ⅱ★★
2.3.2LeetCode24——兩兩交換鏈表中的結(jié)點★★
2.3.3LeetCode25——k個一組翻轉(zhuǎn)鏈表★★★
2.4有序鏈表的算法設計
2.4.1LeetCode83——刪除排序鏈表中的重復元素★
2.4.2LeetCode82——刪除排序鏈表中的重復元素Ⅱ★★
2.4.3LeetCode21——合并兩個有序鏈表★
2.4.4LeetCode23——合并k個有序鏈表★★★
2.4.5LeetCode1634——求兩個多項式鏈表的和★★
推薦練習題
第3章棧
3.1棧概述
3.1.1棧的定義
3.1.2棧的知識點
3.2擴展棧的算法設計
3.2.1LeetCode1381——設計一個支持增量操作的棧★★
3.2.2LeetCode155——最小?!?br />3.2.3LeetCode716——最大?!铩铩?br />3.3棧應用的算法設計
3.3.1LeetCode1544——整理字符串★★
3.3.2LeetCode71——簡化路徑★★
3.3.3LeetCode1441——用棧操作構(gòu)建數(shù)組★
3.3.4LeetCode946——驗證棧序列★★
3.3.5LeetCode20——有效的括號★
3.3.6LeetCode1249——刪除無效的括號★★
3.3.7LeetCode32——最長的有效括號子串的長度★★★
3.4單調(diào)棧應用的算法設計
3.4.1LeetCode503——下一個更大元素Ⅱ★★
3.4.2LeetCode496——下一個更大元素Ⅰ★
3.4.3LeetCode739——每日溫度★★
3.4.4LeetCode316——去除重復字母★★
3.4.5LeetCode84——柱狀圖中最大的矩形★★★
3.4.6LeetCode42——接雨水★★★
推薦練習題
第4章隊列和雙端隊列
4.1隊列和雙端隊列概述
4.1.1隊列和雙端隊列的定義
4.1.2隊列和雙端隊列的知識點
4.2擴展隊列的設計
4.2.1LeetCode622——設計循環(huán)隊列★★
4.2.2LeetCode641——設計循環(huán)雙端隊列★★
4.2.3LeetCode1670——設計前中后隊列★★
4.2.4LeetCode232——用棧實現(xiàn)隊列★
4.3隊列的應用
4.3.1LeetCode1700——無法吃午餐的學生的數(shù)量★
4.3.2LeetCode933——最近的請求次數(shù)★
4.3.3LeetCode225——用隊列實現(xiàn)?!?br />4.3.4LeetCode281——鋸齒迭代器★★
4.3.5LeetCode1047——刪除字符串中所有的相鄰重復項★
4.4單調(diào)隊列
4.4.1LeetCode239——滑動窗口的最大值★★★
4.4.2LeetCode1438——絕對差不超過限制的最長連續(xù)子數(shù)組★★
4.4.3LCR184——設計自助結(jié)算系統(tǒng)★★
推薦練習題
第5章哈希表
5.1哈希表概述
5.1.1哈希表的定義
5.1.2哈希表的知識點
5.2哈希表的實現(xiàn)
5.2.1LeetCode705——設計哈希集合★
5.2.2LeetCode706——設計哈希映射★
5.3哈希集合應用的算法設計
5.3.1LeetCode349——兩個數(shù)組的交集★
5.3.2LeetCode202——快樂數(shù)★
5.3.3LeetCode217——存在重復元素★
5.3.4LeetCode379——電話目錄管理系統(tǒng)★★
5.3.5LeetCode128——最長連續(xù)序列★★
5.3.6LeetCode41——缺失的第一個正數(shù)★★★
5.3.7LeetCode1436——旅行終點站★
5.4哈希映射應用的算法設計
5.4.1LeetCode350——兩個數(shù)組的交集Ⅱ★
5.4.2LeetCode1460——通過翻轉(zhuǎn)子數(shù)組使兩個數(shù)組相等★
5.4.3LeetCode383——贖金信★
5.4.4LeetCode347——前k個高頻元素★★
5.4.5LeetCode242——有效的字母異位詞★
5.4.6LeetCode205——同構(gòu)字符串★
5.4.7LeetCode1——兩數(shù)之和★
5.4.8LeetCode219——存在重復元素Ⅰ★
5.4.9LeetCode49——字母異位詞的分組★★
5.4.10LeetCode249——移位字符串的分組★★
推薦練習題
第6章二叉樹
6.1二叉樹概述
6.1.1二叉樹的定義
6.1.2二叉樹的知識點
6.2二叉樹先序、中序和后序遍歷應用的算法設計
6.2.1LeetCode144——二叉樹的先序遍歷★
6.2.2LeetCode94——二叉樹的中序遍歷★
6.2.3LeetCode145——二叉樹的后序遍歷★
6.2.4LeetCode965——單值二叉樹★
6.2.5LeetCode100——相同的樹★
6.2.6LeetCode572——另一棵樹的子樹★
6.2.7LeetCode543——二叉樹的直徑★
6.2.8LeetCode563——二叉樹的坡度★
6.2.9LeetCode2331——計算二叉樹的布爾運算值★
6.2.10LeetCode199——二叉樹的右視圖★★
6.2.11LeetCode662——二叉樹的最大寬度★★
6.3二叉樹層次遍歷應用的算法設計
6.3.1LeetCode102——二叉樹的層次遍歷★★
6.3.2LeetCode199——二叉樹的右視圖★★
6.3.3LeetCode637——二叉樹的層平均值★
6.3.4LeetCode2471——逐層排序二叉樹所需的最少操作數(shù)目★★
6.3.5LeetCode2415——反轉(zhuǎn)二叉樹的奇數(shù)層★★
6.3.6LeetCode1602——找二叉樹中最近的右側(cè)結(jié)點★★
6.4構(gòu)造二叉樹的算法設計
6.4.1LeetCode105——由先序與中序遍歷序列構(gòu)造二叉樹★★
6.4.2LeetCode106——由中序與后序遍歷序列構(gòu)造二叉樹★★
6.4.3LeetCode2196——根據(jù)描述創(chuàng)建二叉樹★★
6.5二叉樹序列化的算法設計
6.5.1LeetCode297——二叉樹的序列化與反序列化★★★
6.5.2LeetCode100——相同的樹★
6.5.3LeetCode572——另一棵樹的子樹★
推薦練習題
第7章二叉搜索樹
7.1二叉搜索樹概述
7.1.1二叉搜索樹的定義
7.1.2二叉搜索樹的知識點
7.2二叉搜索樹基本操作的算法設計
7.2.1LeetCode1008——先序遍歷構(gòu)造二叉搜索樹★★
7.2.2LeetCode700——二叉搜索樹中的搜索★
7.2.3LeetCode701——二叉搜索樹中的插入操作★★
7.2.4LeetCode450——刪除二叉搜索樹中的結(jié)點★★
7.3二叉搜索樹特性的算法設計
7.3.1LeetCode270——最接近的二叉搜索樹值★
7.3.2LeetCode235——二叉搜索樹的最近公共祖先★★
7.3.3LeetCode938——二叉搜索樹的范圍和★
7.3.4LeetCode669——修剪二叉搜索樹★★
7.3.5LeetCode776——拆分二叉搜索樹★★
7.3.6LeetCode285——二叉搜索樹中的中序后繼★★
7.3.7LeetCode255——驗證先序遍歷序列二叉搜索樹★★
7.4二叉搜索樹基于中序遍歷的算法設計
7.4.1LeetCode783——二叉搜索樹結(jié)點的最小距離★
7.4.2LeetCode230——二叉搜索樹中第k小的元素★★
7.4.3LeetCode98——驗證二叉搜索樹★★
7.4.4LeetCode538——把二叉搜索樹轉(zhuǎn)換為累加樹★★
7.4.5LeetCode99——恢復二叉搜索樹★★
7.4.6LeetCode173——二叉搜索樹迭代器★★
7.4.7LeetCode272——最接近的二叉搜索樹值Ⅱ★★★
推薦練習題
第8章平衡二叉樹
8.1平衡二叉樹概述
8.1.1平衡二叉樹的定義
8.1.2平衡二叉樹的知識點
8.2構(gòu)造平衡二叉樹的算法設計
8.2.1LeetCode108——將有序數(shù)組轉(zhuǎn)換為平衡二叉樹★
8.2.2LeetCode109——將有序鏈表轉(zhuǎn)換為平衡二叉樹★★
8.2.3LeetCode1382——將二叉搜索樹轉(zhuǎn)換為平衡二叉樹★★
8.3平衡樹集合應用的算法設計
8.3.1LeetCode506——相對名次★
8.3.2LeetCode414——第三大的數(shù)★
8.3.3LeetCode855——考場就座★★
8.3.4LeetCode2353——設計食物評分系統(tǒng)★★
8.4平衡樹映射應用的算法設計
8.4.1LeetCode846——一手順子★★
8.4.2LeetCode981——基于時間的鍵值存儲★★
8.4.3LeetCode1912——設計電影租借系統(tǒng)★★★
推薦練習題
第9章優(yōu)先隊列
9.1優(yōu)先隊列概述
9.1.1優(yōu)先隊列的定義
9.1.2優(yōu)先隊列的知識點
9.2優(yōu)先隊列的實現(xiàn)
9.2.1LeetCode912——排序數(shù)組★★
9.2.2LeetCode215——數(shù)組中第k個最大的元素★★
9.2.3LeetCode506——相對名次★
9.3優(yōu)先隊列應用的算法設計
9.3.1LeetCode703——數(shù)據(jù)流中第k大的元素★
9.3.2LeetCode373——查找和最小的k對數(shù)字★★
9.3.3LeetCode23——合并k個有序鏈表★★★
9.3.4LeetCode239——滑動窗口的最大值★★★
9.3.5LeetCode1383——最大的團隊表現(xiàn)值★★★
9.3.6LeetCode2462——雇傭k位工人的總代價★★
推薦練習題
第10章并查集
10.1并查集概述
10.1.1并查集的定義
10.1.2并查集的實現(xiàn)
10.1.3帶權(quán)并查集
10.2一維并查集應用的算法設計
10.2.1LeetCode261——以圖判樹★★
10.2.2LeetCode323——無向圖中連通分量的數(shù)目★★
10.2.3LeetCode684——冗余連接★★
10.2.4LeetCode785——判斷二分圖★★
10.2.5LeetCode990——等式方程的可滿足性★★
10.2.6LeetCode1061——按字典序排列最小的等價字符串★★
10.2.7LeetCode947——移除最多的同行或同列石頭★★
10.3二維并查集
10.3.1LeetCode200——島嶼的數(shù)量★★
10.3.2LeetCode1559——在二維網(wǎng)格圖中探測環(huán)★★
10.4帶權(quán)并查集
10.4.1LeetCode695——最大島嶼的面積★★
10.4.2LeetCode128——最長連續(xù)序列★★
10.4.3LeetCode1254——統(tǒng)計封閉島嶼的數(shù)目★★
10.4.4LeetCode399——除法求值★★
推薦練習題
第11章前綴和與差分
11.1前綴和與差分概述
11.1.1前綴和
11.1.2差分
11.2一維前綴和應用的算法設計
11.2.1LeetCode724——尋找數(shù)組的中心下標★
11.2.2LeetCode238——除自身以外數(shù)組的乘積★★
11.2.3LeetCode1749——任意子數(shù)組和的絕對值的最大值★★
11.2.4LeetCode1524——和為奇數(shù)的子數(shù)組的數(shù)目★★
11.2.5LeetCode560——和為k的子數(shù)組★★
11.2.6LeetCode325——和等于k的最長子數(shù)組的長度★★
11.2.7LeetCode523——連續(xù)子數(shù)組和★★
11.2.8LeetCode53——最大子數(shù)組和★★
11.3二維前綴和應用的算法設計
11.3.1LeetCode304——二維區(qū)域和檢索(矩陣不可變)★★
11.3.2LeetCode1074——元素和為目標值的子矩陣的數(shù)量★★★
11.3.3面試題17.24——最大子矩陣★★★
11.4差分數(shù)組應用的算法設計
11.4.1LeetCode370——區(qū)間加法★★
11.4.2LeetCode1109——航班預訂統(tǒng)計★★
11.4.3LeetCode2536——子矩陣元素加1★★
推薦練習題
第12章線段樹
12.1線段樹概述
12.1.1線段樹的定義
12.1.2簡單線段樹的實現(xiàn)
12.1.3復雜線段樹的實現(xiàn)
12.1.4線段樹的動態(tài)開點實現(xiàn)
12.1.5離散化
12.2簡單線段樹應用的算法設計
12.2.1LeetCode303——區(qū)域和檢索(數(shù)組不可變)★
12.2.2LeetCode308——二維區(qū)域和檢索(可改)★★★
12.2.3LeetCode327——區(qū)間和的個數(shù)★★★
12.3復雜線段樹應用的算法設計
12.3.1LeetCode715——Range模塊★★★
12.3.2LeetCode1622——奇妙序列★★★
12.4離散化在線段樹中的應用
12.4.1LeetCode327——區(qū)間和的個數(shù)★★★
12.4.2LeetCode315——計算右側(cè)小于當前元素的個數(shù)★★★
推薦練習題
第13章樹狀數(shù)組
13.1樹狀數(shù)組概述
13.1.1樹狀數(shù)組的定義
13.1.2樹狀數(shù)組的實現(xiàn)
13.2樹狀數(shù)組應用的算法設計
13.2.1LeetCode1649——通過指令創(chuàng)建有序數(shù)組★★★
13.2.2LeetCode1409——查詢帶鍵的排列★★
13.2.3LeetCode683——k個關(guān)閉的燈泡★★★
13.2.4LeetCode308——二維區(qū)域和檢索(可改)★★★
13.3離散化在樹狀數(shù)組中的應用
13.3.1LeetCode327——區(qū)間和的個數(shù)★★★
13.3.2LeetCode315——計算右側(cè)小于當前元素的個數(shù)★★★
推薦練習題
第14章字典樹和后綴數(shù)組
14.1字典樹和后綴數(shù)組概述
14.1.1字典樹
14.1.2后綴數(shù)組
14.2字典樹應用的算法設計
14.2.1LeetCode208——實現(xiàn)Trie(前綴樹)★★
14.2.2LeetCode14——最長公共前綴★
14.2.3LeetCode648——單詞替換★★
14.2.4LeetCode677——鍵值映射★★
14.2.5LeetCode792——匹配子序列的單詞數(shù)★★
14.3后綴數(shù)組應用的算法設計
14.3.1LeetCode1698——字符串的不同子串的個數(shù)★★
14.3.2LeetCode1044——最長重復子串★★★
推薦練習題
 
 

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號