Leetcode题解(更新中……)

算法

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 是否交替出现

发布了248 篇原创文章 · 获赞 115 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/happyjacob/article/details/88203152