文章目录
算法
1 双指针
内容预览:
1、有序数组中找两个数和等于某数
2、两数平方和
3、翻转字符串中的元音字符
4、判断是不是回文字符串(最多可以删一个字符)
5、归并两个有序数组
6、判断链表是否存在环
7、最长子序列
2 排序
种类 | 题目 |
---|---|
2.1 快速选择 | |
2.2 堆排序 | |
2.3 桶排序 | |
2.4 荷兰国旗问题 |
3 贪心算法
1、数对可以组成的最长链
2、分配饼干
3、不重叠的区间个数
4、最少需要多少飞镖刺破气球
5、根据身高序号重排序
6、买卖股票最大的收益
7、买卖股票最大的收益Ⅱ
8、种植花朵
9、判断是否是字串
10、修改一个数成为非递减数组
11、连续子数组的最大和
12、分隔字符串使同种字符出现在一起
4 二分查找
内容预览:
1、求开方
2、找大于给定字符的最小字符
3、排序重复数组中找出现一次的数
4、第一个出错的版本
5、旋转数组最小值
6、目标数在排序数组中出现的首尾位置
5 分治
6 搜索
内容预览:
1、BFS
- 1.1 将一个数分解为整数的平方和
- 1.2 最短单词路径
- 1.3 K 站中转内最便宜的航班
2、DFS
- 2.1 查找最大的连通面积
- 2.2 矩阵中的连通分量数目
- 2.3 朋友圈的数量
- 2.4 填充封闭的区域
- 2.5 能到达的太平洋和大西洋的区域
7 动态规划
内容预览:
1、斐波那契数列
- 1.1 爬楼梯
- 1.2 强盗抢劫
- 1.3 环形街道抢劫
2、矩阵路径
- 2.1 矩阵的最小的路径和
- 2.2 矩阵的总路径数
3、数组区间
- 3.1 数组区间和
- 3.2 数组中等差递增子区间的个数
4、分割整数
- 4.1 分割整数的最大乘积
- 4.2 将一个数分解为整数的平方和
- 4.3 分割整数构成字母字符串
5、最长上升子序列
- 5.1 最长上升子序列
- 5.2 数对可以组成的最长链
- 5.3 最长摆动子序列
6、最长公共子序列
7、0-1背包
- 7.1 将数组分为和相等的两部分
- 7.2 为一组数指定正负号使其和为目标值
- 7.3 从字符串集合中选尽可能多的字符串并保证0和1个数不超过给定值
- 7.4 用最少的硬币拼出总额
- 7.5 找零钱的组合
8、买卖股票
- 8.1 需要冷却的股票交易
- 8.2 收交易费的交易
- 8.3 最多进行两次交易
- 8.4 只能进行 k 次的股票交易
8 数学
内容预览:
1、进制转换
- 1.1 小于 n 的所有素数
- 1.2 7进制
- 1.3 16进制
- 1.4 26进制
2、阶乘
- 2.1 阶乘的尾部有多少0
3、字符串加法减法
- 3.1 二进制加法
- 3.2 字符串加法
4、相遇问题
- 4.1 移动最少的次数使所有的数组元素都相等
5、多数投票问题
- 5.1 找出数组中出现次数大于 n/2 的元素
6、其他
- 6.1 平方数
- 6.2 3 的 n 次方
- 6.3 乘积数组
- 6.4 找出数组中的乘积最大的三个数
数据结构
1 链表
内容预览
1、找出两个链表的交点
2、链表反转
3、归并两个有序链表
4、从有序链表中删除重复结点
5、删除链表中倒数第 n 个结点
6、交换链表中相邻的结点
7、两链表的和
8、回文链表
9、分隔链表
10、链表元素按奇偶聚集
2 树
2.1递归
入口
内容预览
1、递归
- 1.1 树的高度
- 1.2 平衡树
- 1.3 归并两棵树
- 1.4 判断是否存在一条路径和等于一个数
- 1.5 统计路径和等于某个数的路径总数
- 1.6 子树
- 1.7 判断树是否对称
- 1.8 两节点间的最长路径
- 1.9 翻转树
- 1.10 最小路径
- 1.11 统计左叶子结点的和
- 1.12 相同节点的最大路径长度
- 1.13 间隔层序遍历
- 1.14 二叉树中第二小的结点
2、层序遍历
- 2.1 二叉树每层节点的平均值
- 2.2 找树左下角的结点
- 2.3 之字形打印二叉树
3、前中后序遍历
- 3.1 非递归实现二叉树前序遍历
- 3.2 非递归实现二叉树中序遍历
- 3.3 非递归实现二叉树后序遍历
2.2二叉查找树(BST)
入口
1、修剪二叉查找树
2、二叉查找树的第 k 个元素
3、把二叉查找树每个节点的值都加上比它大的节点的值
4、二叉查找树的最近公共祖先
5、二叉树的最近公共祖先
6、 有序数组构造二叉查找树
7、 有序链表构造二叉查找树
8、寻找两个点,和为给定值
9、二叉搜索树中两节点差的最小值
10、寻找二叉查找树中出现次数最多的值
3 栈和队列
内容预览:
1、用栈实现队列
2、用队列实现栈
3、最小值栈
4、括号匹配
5、数组中下一个比自己的元素和自己的距离
6、循环数组中比当前元素大的下一个元素
7、字符串解码
4 哈希表
内容预览:
1、两数之和
2、判断数组中是否有重复的数
3、最长和谐序列
4、最长连续序列
5、LRU
5 字符串
内容预览:
1、两字符的组成字符是否相等
2、一组字符可以组成回文字符串最大长度
3、字符串同构
4、回文子字符串的个数
5、判断一个数是不是回文数
6、统计二进制字符串中连续 1 和连续 0 数量相同的子字符串个数
7、旋转字符串
6 数组与矩阵
内容预览:
1、把数组中的0移动到数组尾部
2、改变矩阵分维度
3、数组中连续1的最大个数
4、有序矩阵中查找目标数
5、有序矩阵中第k小的数
6、1-n的数中一个数被另一个替换,找重复和丢失的数
7、寻找数组中丢失的数
8、寻找数组中重复的数
9、寻找数组中重复的数(不修改数组)
10、构造相邻数有 k 种差值的数组
11、数组的度
12、对角元素相等的矩阵
13、数组嵌套
14、分隔数组
7 图
种类 | 题目 |
---|---|
7.1 二分图 | |
7.2 拓扑排序 | |
7.3 并查集 |
8 位运算
内容预览:
1 统计两个数二进制位多少位不同
2 数组中唯一一个不重复的数
3 寻找数组中缺失的数
4 不重复的两个数字
5 翻转一个数的比特位
4 判断一个数是不是 2 的 n 次方
5 判断一个数是不是 4 的 n 次方
6 查看整数二进制位 0 和 1 是否交替出现