-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
深度學習
-
>
Unreal Engine 4藍圖完全學習教程
-
>
深入理解計算機系統-原書第3版
-
>
Word/Excel PPT 2013辦公應用從入門到精通-(附贈1DVD.含語音視頻教學+辦公模板+PDF電子書)
算法面試(全2冊) 版權信息
- ISBN:9787302673989
- 條形碼:9787302673989 ; 978-7-302-67398-9
- 裝幀:平裝-膠訂
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
算法面試(全2冊) 本書特色
本書適合于需要進行算法面試的讀者,通過閱讀本書可以掌握算法面試中求解問題的方法和技巧,提升自己的算法技能和思維方式,從而在面試中脫穎而出。同時,本書可以作為“數據結構”和“算法設計與分析”課程的輔導書,也可以供各種程序設計競賽和計算機編程愛好者研習。
算法面試(全2冊) 內容簡介
本書旨在幫助讀者更好地應對算法面試,提高算法和編程能力。書中按專題精選了LeetCode平臺的一系列的熱點算法題,并詳細解釋其求解思路和過程。全書分為三個部分,第Ⅰ部分為數據結構及其應用,以常用數據結構為主題,深入講解各種數據結構的應用方法和技巧。第Ⅱ部分為算法策略及其應用,以基本算法設計方法和算法設計策略為主題,深入講解各種算法設計策略的應用方法和技巧。第Ⅲ部分為經典問題及其求解,以實際中的一些問題為主題,深入講解這些問題多種求解方法。
本書適合于需要進行算法面試的讀者,通過閱讀本書可以掌握算法面試中求解問題的方法和技巧,提升自己的算法技能和思維方式,從而在面試中脫穎而出。同時可以作為《數據結構》和《算法設計與分析》課程的輔導書,也可以供各種程序設計競賽和計算機編程愛好者研習。
算法面試(全2冊) 目錄
配套資源
**部分數據結構及其應用 第1章數組 1.1數組概述 1.1.1數組的定義 1.1.2數組的知識點 1.2數組的基本算法設計 1.2.1LeetCode27——移除元素★ 1.2.2LeetCode283——移動0★ 1.2.3LeetCode2460——對數組執行操作★ 1.2.4LeetCode75——顏色的分類★★ 1.2.5LeetCode189——輪轉數組★★ 1.3有序數組的算法設計 1.3.1LeetCode26——刪除有序數組中的重復項★ 1.3.2LeetCode80——刪除有序數組中的重復項Ⅱ★★ 1.3.3LeetCode1287——有序數組中出現次數超過元素總數25%的
元素★ 1.3.4LeetCode1200——*小絕對差★ 1.3.5LeetCode88——合并兩個有序數組★ 1.3.6LeetCode349——兩個數組的交集★ 1.3.7LeetCode977——有序數組的平方★ 1.3.8LeetCode1470——重新排列數組★ 1.3.9LeetCode1213——3個有序數組的交集★ 1.3.10LeetCode264——丑數Ⅱ★★ 1.3.11LeetCode373——查找和*小的k對數字★★ 推薦練習題 第2章鏈表 2.1鏈表概述 2.1.1鏈表的定義 2.1.2鏈表的知識點 2.2鏈表基本操作的算法設計 2.2.1LeetCode203——移除鏈表元素★ 2.2.2LeetCode206——反轉鏈表★ 2.2.3LeetCode328——奇偶鏈表★★ 2.2.4LeetCode61——旋轉鏈表★★ 2.2.5LeetCode141——環形鏈表★ 2.2.6LeetCode138——復制帶隨機指針的鏈表★★ 2.2.7LeetCode707——設計鏈表★★ 2.3鏈表的分組算法設計 2.3.1LeetCode92——反轉鏈表Ⅱ★★ 2.3.2LeetCode24——兩兩交換鏈表中的結點★★ 2.3.3LeetCode25——k個一組翻轉鏈表★★★ 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——*小! 3.2.3LeetCode716——*大棧★★★ 3.3棧應用的算法設計 3.3.1LeetCode1544——整理字符串★★ 3.3.2LeetCode71——簡化路徑★★ 3.3.3LeetCode1441——用棧操作構建數組★ 3.3.4LeetCode946——驗證棧序列★★ 3.3.5LeetCode20——有效的括號★ 3.3.6LeetCode1249——刪除無效的括號★★ 3.3.7LeetCode32——*長的有效括號子串的長度★★★ 3.4單調棧應用的算法設計 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——設計循環隊列★★ 4.2.2LeetCode641——設計循環雙端隊列★★ 4.2.3LeetCode1670——設計前中后隊列★★ 4.2.4LeetCode232——用棧實現隊列★ 4.3隊列的應用 4.3.1LeetCode1700——無法吃午餐的學生的數量★ 4.3.2LeetCode933——*近的請求次數★ 4.3.3LeetCode225——用隊列實現! 4.3.4LeetCode281——鋸齒迭代器★★ 4.3.5LeetCode1047——刪除字符串中所有的相鄰重復項★ 4.4單調隊列 4.4.1LeetCode239——滑動窗口的*大值★★★ 4.4.2LeetCode1438——絕對差不超過限制的*長連續子數組★★ 4.4.3LCR184——設計自助結算系統★★ 推薦練習題 第5章哈希表 5.1哈希表概述 5.1.1哈希表的定義 5.1.2哈希表的知識點 5.2哈希表的實現 5.2.1LeetCode705——設計哈希集合★ 5.2.2LeetCode706——設計哈希映射★ 5.3哈希集合應用的算法設計 5.3.1LeetCode349——兩個數組的交集★ 5.3.2LeetCode202——快樂數★ 5.3.3LeetCode217——存在重復元素★ 5.3.4LeetCode379——電話目錄管理系統★★ 5.3.5LeetCode128——*長連續序列★★ 5.3.6LeetCode41——缺失的**個正數★★★ 5.3.7LeetCode1436——旅行終點站★ 5.4哈希映射應用的算法設計 5.4.1LeetCode350——兩個數組的交集Ⅱ★ 5.4.2LeetCode1460——通過翻轉子數組使兩個數組相等★ 5.4.3LeetCode383——贖金信★ 5.4.4LeetCode347——前k個高頻元素★★ 5.4.5LeetCode242——有效的字母異位詞★ 5.4.6LeetCode205——同構字符串★ 5.4.7LeetCode1——兩數之和★ 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——逐層排序二叉樹所需的*少操作數目★★ 6.3.5LeetCode2415——反轉二叉樹的奇數層★★ 6.3.6LeetCode1602——找二叉樹中*近的右側結點★★ 6.4構造二叉樹的算法設計 6.4.1LeetCode105——由先序與中序遍歷序列構造二叉樹★★ 6.4.2LeetCode106——由中序與后序遍歷序列構造二叉樹★★ 6.4.3LeetCode2196——根據描述創建二叉樹★★ 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——先序遍歷構造二叉搜索樹★★ 7.2.2LeetCode700——二叉搜索樹中的搜索★ 7.2.3LeetCode701——二叉搜索樹中的插入操作★★ 7.2.4LeetCode450——刪除二叉搜索樹中的結點★★ 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——二叉搜索樹結點的*小距離★ 7.4.2LeetCode230——二叉搜索樹中第k小的元素★★ 7.4.3LeetCode98——驗證二叉搜索樹★★ 7.4.4LeetCode538——把二叉搜索樹轉換為累加樹★★ 7.4.5LeetCode99——恢復二叉搜索樹★★ 7.4.6LeetCode173——二叉搜索樹迭代器★★ 7.4.7LeetCode272——*接近的二叉搜索樹值Ⅱ★★★ 推薦練習題 第8章平衡二叉樹 8.1平衡二叉樹概述 8.1.1平衡二叉樹的定義 8.1.2平衡二叉樹的知識點 8.2構造平衡二叉樹的算法設計 8.2.1LeetCode108——將有序數組轉換為平衡二叉樹★ 8.2.2LeetCode109——將有序鏈表轉換為平衡二叉樹★★ 8.2.3LeetCode1382——將二叉搜索樹轉換為平衡二叉樹★★ 8.3平衡樹集合應用的算法設計 8.3.1LeetCode506——相對名次★ 8.3.2LeetCode414——第三大的數★ 8.3.3LeetCode855——考場就座★★ 8.3.4LeetCode2353——設計食物評分系統★★ 8.4平衡樹映射應用的算法設計 8.4.1LeetCode846——一手順子★★ 8.4.2LeetCode981——基于時間的鍵值存儲★★ 8.4.3LeetCode1912——設計電影租借系統★★★ 推薦練習題 第9章優先隊列 9.1優先隊列概述 9.1.1優先隊列的定義 9.1.2優先隊列的知識點 9.2優先隊列的實現 9.2.1LeetCode912——排序數組★★ 9.2.2LeetCode215——數組中第k個*大的元素★★ 9.2.3LeetCode506——相對名次★ 9.3優先隊列應用的算法設計 9.3.1LeetCode703——數據流中第k大的元素★ 9.3.2LeetCode373——查找和*小的k對數字★★ 9.3.3LeetCode23——合并k個有序鏈表★★★ 9.3.4LeetCode239——滑動窗口的*大值★★★ 9.3.5LeetCode1383——*大的團隊表現值★★★ 9.3.6LeetCode2462——雇傭k位工人的總代價★★ 推薦練習題 第10章并查集 10.1并查集概述 10.1.1并查集的定義 10.1.2并查集的實現 10.1.3帶權并查集 10.2一維并查集應用的算法設計 10.2.1LeetCode261——以圖判樹★★ 10.2.2LeetCode323——無向圖中連通分量的數目★★ 10.2.3LeetCode684——冗余連接★★ 10.2.4LeetCode785——判斷二分圖★★ 10.2.5LeetCode990——等式方程的可滿足性★★ 10.2.6LeetCode1061——按字典序排列*小的等價字符串★★ 10.2.7LeetCode947——移除*多的同行或同列石頭★★ 10.3二維并查集 10.3.1LeetCode200——島嶼的數量★★ 10.3.2LeetCode1559——在二維網格圖中探測環★★ 10.4帶權并查集 10.4.1LeetCode695——*大島嶼的面積★★ 10.4.2LeetCode128——*長連續序列★★ 10.4.3LeetCode1254——統計封閉島嶼的數目★★ 10.4.4LeetCode399——除法求值★★ 推薦練習題 第11章前綴和與差分 11.1前綴和與差分概述 11.1.1前綴和 11.1.2差分 11.2一維前綴和應用的算法設計 11.2.1LeetCode724——尋找數組的中心下標★ 11.2.2LeetCode238——除自身以外數組的乘積★★ 11.2.3LeetCode1749——任意子數組和的絕對值的*大值★★ 11.2.4LeetCode1524——和為奇數的子數組的數目★★ 11.2.5LeetCode560——和為k的子數組★★ 11.2.6LeetCode325——和等于k的*長子數組的長度★★ 11.2.7LeetCode523——連續子數組和★★ 11.2.8LeetCode53——*大子數組和★★ 11.3二維前綴和應用的算法設計 11.3.1LeetCode304——二維區域和檢索(矩陣不可變)★★ 11.3.2LeetCode1074——元素和為目標值的子矩陣的數量★★★ 11.3.3面試題17.24——*大子矩陣★★★ 11.4差分數組應用的算法設計 11.4.1LeetCode370——區間加法★★ 11.4.2LeetCode1109——航班預訂統計★★ 11.4.3LeetCode2536——子矩陣元素加1★★ 推薦練習題 第12章線段樹 12.1線段樹概述 12.1.1線段樹的定義 12.1.2簡單線段樹的實現 12.1.3復雜線段樹的實現 12.1.4線段樹的動態開點實現 12.1.5離散化 12.2簡單線段樹應用的算法設計 12.2.1LeetCode303——區域和檢索(數組不可變)★ 12.2.2LeetCode308——二維區域和檢索(可改)★★★ 12.2.3LeetCode327——區間和的個數★★★ 12.3復雜線段樹應用的算法設計 12.3.1LeetCode715——Range模塊★★★ 12.3.2LeetCode1622——奇妙序列★★★ 12.4離散化在線段樹中的應用 12.4.1LeetCode327——區間和的個數★★★ 12.4.2LeetCode315——計算右側小于當前元素的個數★★★ 推薦練習題 第13章樹狀數組 13.1樹狀數組概述 13.1.1樹狀數組的定義 13.1.2樹狀數組的實現 13.2樹狀數組應用的算法設計 13.2.1LeetCode1649——通過指令創建有序數組★★★ 13.2.2LeetCode1409——查詢帶鍵的排列★★ 13.2.3LeetCode683——k個關閉的燈泡★★★ 13.2.4LeetCode308——二維區域和檢索(可改)★★★ 13.3離散化在樹狀數組中的應用 13.3.1LeetCode327——區間和的個數★★★ 13.3.2LeetCode315——計算右側小于當前元素的個數★★★ 推薦練習題 第14章字典樹和后綴數組 14.1字典樹和后綴數組概述 14.1.1字典樹 14.1.2后綴數組 14.2字典樹應用的算法設計 14.2.1LeetCode208——實現Trie(前綴樹)★★ 14.2.2LeetCode14——*長公共前綴★ 14.2.3LeetCode648——單詞替換★★ 14.2.4LeetCode677——鍵值映射★★ 14.2.5LeetCode792——匹配子序列的單詞數★★ 14.3后綴數組應用的算法設計 14.3.1LeetCode1698——字符串的不同子串的個數★★ 14.3.2LeetCode1044——*長重復子串★★★ 推薦練習題
算法面試(全2冊) 作者簡介
李春葆,計算機學院教授,主要研究方向:數據挖掘、人工智能和軟件工程。發表論文30余篇,主持和參加多項科研課題。著作教材多部。從事近30年C/C 語言、數據結構和算法設計等課程的第一線本科教學工作,具備豐富的教學經驗,曾參與深圳名企的筆試和面試題庫建設。
- >
隨園食單
- >
史學評論
- >
龍榆生:詞曲概論/大家小書
- >
莉莉和章魚
- >
詩經-先民的歌唱
- >
月亮虎
- >
企鵝口袋書系列·偉大的思想20:論自然選擇(英漢雙語)
- >
經典常談