英语 | 简体中文
算法和数据结构
这是算法、数据结构和面试问题及其解决方案的集合。该存储库包含我对常见算法问题的解决方案以及 Java 数据结构的实现。我创建这个存储库是为了了解算法。我正在不断添加解决方案。
迄今为止提供了算法、数据结构以及300 多个问题和解决方案。
问题
以下是按难度级别划分的问题:
- 简单的问题和答案
- 中等问题与解答
- 难题与解答
问题:
数组
- 旋转阵列
- 包含重复项
- 查找峰值元素
- 最大子数组
- 数组中第 K 大的元素
- 查找数组中的所有重复项
- 最长递增子序列
- 旋转图像、矩阵
- 打乱数组
- 查找旋转数组中的最小值
- 在旋转数组中搜索
链表
- 单链表实现
- 双向链表实现
- 删除链表中的节点
- 回文链表
- 反向链表
- 两个链表的交集
- 链表循环
- 从列表末尾删除第 N 个节点
- 合并排序列表
- 查找链表循环
- 合并 k 个排序列表
以及许多其他链表问题
二叉树
- 二叉树层次顺序遍历
- 左叶总和
- 反转二叉树
- 二叉搜索树迭代器
- 二叉树后序遍历
- 二叉树前序遍历
- 将二叉树展平为链表
- 对称树
- 二叉树中序遍历
- 同一棵树
- 二叉树的最大深度
- 平衡二叉树
- 二叉树的最小深度
- 排序列表到平衡二叉搜索树
- 验证二叉搜索树
- 排序列表到平衡 BST
- BST 中的第 K 个最小元素
- 二叉树之字形层序遍历
- 删除 BST 中的节点
- BST 的最低共同祖先
- 二叉树左侧视图
- 二叉树右侧视图
- BST 模式
- 最频繁子树和
- 查找每行中最大的元素
- 序列化和反序列化 BT
还有许多其他树木问题
数学
- 整数中断
- 反转位
- 回文数
- 数学pow
- 水壶和水问题
- 埃拉托斯特尼筛法
- 费马的素性
- 评估逆波兰表示法
堆栈和队列
- 最小堆栈
- 最小队列
- 使用队列实现堆栈
- 使用堆栈实现队列
- 排序堆栈
动态规划
- 斐波那契数列
- 断词
- 子集和
- 0/1 背包问题
- 最短回文 (KMP)
- 最小平方和
- 字符串的最大权重变换
- 硬币找零
杂项
- 联合查找
- 排列
- 子集
算法
排序和搜索
- 冒泡排序
- 插入排序
- 选择排序
- 计数排序
- 二分查找,下限和上限
- 归并排序
- 快速排序
图表
- 广度优先搜索(BFS)
- 深度优先搜索(DFS)
- Prim 的最小生成树 (MST)
- KrusKal 的最小生成树 (MST)
- 拓扑排序
- 最短路径迪斯克特拉
- 最短路径贝尔曼-福特
- A* 启发式路径查找
- 图是二分图吗
- 图是否连通
- 循环检测
- 无向图桥接检测
细绳
- 拉宾·卡普子序列搜索
- 勒索信
- 反转字符串
- 最长公共前缀
- 是字谜
- 针和干草堆
- 断词
- 元字符串
数据结构:
树木
- 二叉搜索树(递归)
- 二叉搜索树(迭代)
- AVL树
- Trie(前缀树)
- 哈希数组树
- LRU缓存
贡献
您发现错误了吗?有什么办法可以做得更好吗?请随时拉取请求。 :)