数据结构和算法 - 练习
- array 数组相关算法
- 数组合并
- base
- Log2N
- binary 二进制
- 二进制 求奇数偶数
- 二进制 求1存在的次数
- 二进制 交换数字
- binaryTree 二叉树
- 拷贝二叉树
- 谷歌面试题折纸 - 二叉树遍历解
- 二叉树 - 求二叉树最宽的层有多少个节点
- 二叉树 - 获取二叉树的节点数
- 二叉树 - 获取二叉树的深度
- 二叉树 - 获取二叉树的叶子节点数
- 二叉树 - 判断最大两点距离
- 二叉树 - 最低公共祖先
- 二叉树 - 获取这棵二叉树最大搜索子树的头节点
- 二叉树 - 判断是否是平衡二叉树
- 二叉树 - 判断是否是平衡二叉树
- 二叉树 - 判断当前树是否是一棵搜索二叉树
- 二叉树 - 判断当前树是否是一棵完全二叉树
- 二叉树 - 判断当前树是否是一棵满二叉树
- 多叉树 - 派对最大快乐值
- graph 图算法
- 广搜
- 深搜
- 最小生成树
- 最短路径
- greed 贪心算法
- 安排会议
- 黄金分割
- 路灯问题
- hash 算法
- 一致性hash环
- leecode
- 两数之和(简单)
- 字母异位词分组(中等)
- 最长连续序列(中等)
- 移动零(简单)
- 盛最多水的容器(中等)
- 链表算法
- 链表快慢指针
- 链表 相交
- 反转链表
- 链表 回文判断
- 链表 分区
- 链表 Randome随机节点 克隆
- 荷兰国旗问题
- 经典排序(荷兰国旗问题)
- 简单排序(不强制要求左右两边顺序)
- 递归算法
- 递归查询列表最大值
- 求小和
- 线性表查找
- 线性表 二分查找
- 线性表 哨兵查找 (非线程安全)
- 排序算法
- 二分排序
- 冒泡排序
- 直接插入排序
- 堆排序
- 归并排序
- 快速排序
- 随机快速排序
- 简单选择排序
- 希尔排序
- 栈和队列算法
- 十进制转换
- 男女分组 (队列实现)
- 判断正确括号表达式(栈实现)
- 栈转队列
- 队列转栈
- 求栈的最小值
- 字符串算法
- BF 暴力匹配
- KMP 匹配
- 交替合并字符串
- 字符串全排列 穷举法
- 拥有最多糖果的孩子
- 种花问题
- 病毒DNA 匹配
- 树算法
- 树 转 二叉树
- 并查集
- 用户渠道并集查
- 二叉树
- 顺序表、链表
- 栈、队列
- 树