常见算法类型介绍链表找出循环链表的环起点两条链表的相交点合并多个有序链表按照指定值对链表进行分割leetcode138 复制含有随机指针的链表各种反转链表成对交换节点leetcode82&83 删除链表中的重复元素P0:leetcode143 medium 重排链表树根据先序遍历重建二叉搜索树(预设最大值和最小值)leetcode426 二叉搜索树转为排序的双向链表P1:二叉树的直径是否是平衡二叉树某个数是否是完全二叉树两个树是否是镜像二叉树P1:最小公共祖先P1:最长路径P1:找到某个树的镜像二叉树P0:二叉树的构造及深度广度算法P0:二叉树遍历leetcode257 二叉树路径问题滑动窗口P0:求和为K的子数组的最大长度leetcode239: 返回滑动窗口最大值序列leetcode480 hard 求滑动窗口的中值序列leetcode340 最多有K个不同字符的最长子串leetcode904 Fruit Into Basketsleetcode424 替换k次之后的最长重复子串leetcode438 medium 寻找同位异构词的下标leetcode713 medium 元素之积小于K的连续子数组个数leetcode992 hard 有K个不重复元素的子数组个数leetcode219 easy 相邻重复元素的距离差不大于Kleetcode3 最长不重复子串的长度双指针leetcode11 medium 盛水最多的容器kSum问题leetcode345 翻转元音字符leetcode680 验证回文数leetcode26&80 删除数组中的重复元素leetcode75 只有0,1,2三个元素的有限排序leetcode202 快乐数P9:leetcode349 easy 两个数组的交集动态规划算法背包问题硬币找零问题leetcode121 股票买卖最大利润最长公共子串最长公共子序列leetcode5 最长回文字符串求杨辉三角的最短路径P0 leetcode97 交织字符串leetcode5627 石头游戏五 决策类leetcode486 预测胜利者 决策类leetcode1691 堆叠长方体的最大高度贪心算法leetcode321 生成最大的数leetcode134 加油站leetcode55 跳跃游戏:是否能跳到终点leetcode45 跳跃游戏:跳到终点所需的最小步数堆栈带最小值方法的栈用栈实现队列用队列实现栈实现简单计算器hard 逆波兰表达式运算leetcode32 有效括号的最大长度leetcode295 利用堆实现中位数查找器搜索算法广度优先搜索深度优先搜索leetcode4 查找两个有序数组的中位数leetcode28 IndexOfleetcode208 实现Trie树leetcode208 实现正统Trie树leetcode34 升序重复数组中,查找给定整数的左右边界排序算法P0:归并排序P0:基于链表的归并排序P0:快排P0:堆排序冒泡排序计数排序桶排序基数排序希尔排序P0:leetcode215 数组中第k大的元素系统设计P0:短URL算法区间合并leetcode56 medium 合并重叠区间leetcode57 medium 插入有序区间leetcode986 medium 两个区间列表中交叉的区间leetcode715 Hard 设计一个区间模块类循环排序: 用来处理数组中的数值限定在一定区间内的问题,典型的如寻找丢失数leetcode268 缺失的数字P0:leetcode42 第一个缺失的正整数leetcode448 求所有缺失的数字leetcode287 寻找重复元素leetcodeP0:大数相加大数相加链表版判断A是否是B的子域名leetcode8 String转int繁琐版String转intleetcode46 一个数组的全排列组合反转int反转Stringleetcode348 判定井字棋胜负leetcode405 进制转换LRUCacheleetcode460 使用双哈希表的LFUleetcode460 使用哈希表加最小堆的LFU其他问题生产者与消费者多线程交替打印JDK自身的动态代理GClib动态代理CyclicBarrier循环栅栏APICAS乐观锁volatile单例枚举单例静态内部类单例疑难算法(面试前背下来)leetcode28 IndexOf KMP算法hard 逆波兰表达式运算