第1章 算法入門——概論
1.1 算法概述
1.1.1 什么是算法
1.1.2 算法描述
1.1.3 算法設計的基本步驟
1.2 算法分析
1.2.1 算法的時間復雜度分析
1.2.2 算法的空間復雜度分析
1.3 練習題
1.3.1 單項選擇題
1.3.2 問答題
1.3.3 算法設計題
第2章 工之利器——常用數據結構及其應用
2.1 線性表——數組
2.1.1 線性表的定義
2.1.2 Java數組
2.1.3 實戰(zhàn)——移除元素(LeetCode27★)
2.1.4 Arrays類及其應用
2.1.5 ArrayList類及其應用
2.2 線性表——鏈表
2.2.1 單鏈表
2.2.2 實戰(zhàn)——反轉鏈表(LealCodle206★)
2.2.3 LinkedList類
2.3 字符串
2.3.1 字符串的定義
2.3.2 String類
2.3.3 實戰(zhàn)—— 重復子字符串(LeetCodel668★)
2.4 棧
2.4.1 棧的定義
2.4.2 Stack棧類
2.4.3 實戰(zhàn)——使括號有效的 少添加(LeetCode921★)
2.5 隊列
2.5.1 隊列的定義
2.5.2 Queue隊列接口
2.5.3 實戰(zhàn)——無法吃午餐的學生數量(LeetCodeI700★)
2.6 雙端隊列
2.6.1 雙端隊列的定義
2.6.2 Deque雙端隊列接口
2.6.3 實戰(zhàn)——滑動窗口中的 值(LeetCode239★★★)
2.7 優(yōu)先隊列
2.7.1 優(yōu)先隊列的定義
2.7.2 PriorityQueue優(yōu)先隊列類
2.7.3 實戰(zhàn)——滑動窗口中的 值(LeetCode239★★★)
2.8 樹和二叉樹
2.8.1 樹
2.8.2 二叉樹
2.8.3 實戰(zhàn)——二叉樹的 性檢驗(LeetCode958★★)
2.9 圖
2.9.1 圖基礎
2.9.2 實戰(zhàn)——課程表(LeetCode207★★)