第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 实战——移除元素(LeetCode27★)
2.1.4 Arrays类及其应用
2.1.5 ArrayList类及其应用
2.2 线性表——链表
2.2.1 单链表
2.2.2 实战——反转链表(LealCodle206★)
2.2.3 LinkedList类
2.3 字符串
2.3.1 字符串的定义
2.3.2 String类
2.3.3 实战—— 重复子字符串(LeetCodel668★)
2.4 栈
2.4.1 栈的定义
2.4.2 Stack栈类
2.4.3 实战——使括号有效的 少添加(LeetCode921★)
2.5 队列
2.5.1 队列的定义
2.5.2 Queue队列接口
2.5.3 实战——无法吃午餐的学生数量(LeetCodeI700★)
2.6 双端队列
2.6.1 双端队列的定义
2.6.2 Deque双端队列接口
2.6.3 实战——滑动窗口中的 值(LeetCode239★★★)
2.7 优先队列
2.7.1 优先队列的定义
2.7.2 PriorityQueue优先队列类
2.7.3 实战——滑动窗口中的 值(LeetCode239★★★)
2.8 树和二叉树
2.8.1 树
2.8.2 二叉树
2.8.3 实战——二叉树的 性检验(LeetCode958★★)
2.9 图
2.9.1 图基础
2.9.2 实战——课程表(LeetCode207★★)