数据结构和算法 (Java)

项目

排序
快速排序 归并排序 堆排序

链表
反转链表 复制复杂链表 链表的公共节点 链表环的入口 删除重复的有序链表节点 链表相加 链表两两交换

二叉树
重建二叉树 判断是否是子树 判断数组是 BST 后序遍历 和为定值的所有路径 判断是否是二叉搜索树

栈和队列
最小栈 栈实现队列 括号的合法序列 汉诺塔问题

位运算
位运算实际问题 位运算实现加法 二进制中 1 的个数 只出现了一次的数 个数多于一半的数 汉明距离

搜索
各种层序遍历二叉树 完美的二分搜索 有序数组转化为 BST 无重复数组的全排列 N 皇后问题

动态规划
股票买卖最大利润 最大子序列 抢劫房子 最长回文子串 二维数组中和最小路径 编辑距离 动态规划合集

高级数据结构
LRU 缓存


并发

生产者消费者模型 实现一个 Semaphore 类 Print In Order


函数式