力扣刷题精选

数组

LC18-四数之和
LC27-移除元素
LC48-旋转图像
LC56-合并区间
LC74-搜索二维矩阵
LC128-最长连续序列
LC162-寻找峰值
LC169-多数元素
LC189-旋转数组
LC209-长度最小的子数组
LC240-搜索二维矩阵II
LC283-移动零
LC325-和等于 k 的最长子数组长度
LC560-和为 K 的子数组
LC628-三个数的最大乘积
LC692-前k个高频单词
LC724-寻找数组的中心下标
LC904-水果成篮
LC905-按奇偶排序数组
LC941-有效的山脉数组
LC977-有序数组的平方
LC986-区间列表的交集
LC1288-删除被覆盖区间

NC30-数组中未出现的最小正整数

剑指offer03-数组中重复的数字
剑指offer40-最小的k个数
剑指offer51-数组中的逆序对

链表

链表算法题解题注意事项

LC02-两数相加
LC19-删除链表的倒数第N个节点
LC21-合并两个有序链表
LC23-合并k个升序链表
LC24-两两交换链表中的节点
LC25-K个一组翻转链表
LC82-删除排序链表中的重复元素II
LC83-删除排序链表中的重复元素
LC92-反转链表II
LC138-复制带随机指针的链表
LC141-环形链表
LC142-环形链表II
LC143-重排链表
LC148-排序链表
LC160-相交链表
LC203-移除链表元素
LC206-反转链表
LC234-回文链表
LC328-奇偶链表
LC445-两数相加II
LC707-设计链表
LC725-分割链表
LC876-链表的中间节点

剑指offer22-链表中倒数第k个节点

哈希表

LC01-两数之和
LC49-字母异位词分组
LC202-快乐数
LC242-有效的字母异位词
LC349-两个数组的交集
LC350-两个数组的交集II
LC383-赎金信
LC454-四数相加II
LC692-前K个高频单词
LC1002-查找共用字符
LC1207-独一无二的出现次数

剑指offer39-数组中出现次数超过一半的数字

字符串

LC03-无重复字符的最长字串
LC07-整数反转
LC08-字符串转换整数
LC09-回文数
LC14-最长公共前缀
LC28-实现strStr()
LC76-最小覆盖字串
LC151-翻转字符串里的单词
LC165-比较版本号
LC179-最大数
LC205-同构字符串
LC344-反转字符串
LC438-找到字符串中所有字母异位词
LC459-重复的子字符串
LC468-验证IP地址
LC541-反转字符串II
LC567-字符串的排列
LC844-比较含退格的字符串
LC1044-最长重复子串

NC89-字符串变形

剑指offer 05-替换空格
剑指offer 50-第一个只出现一次的字符
剑指offer 58II-左旋转字符串

栈与队列

LC20-有效的括号
LC150-逆波兰表达式求值
LC155-最小栈
LC224-基本计算器I
LC225-用队列实现栈
LC227-基本计算器II
LC232-用栈实现队列
LC772-基本计算器III
LC1047-删除字符串中的所有相邻重复项

剑指offer30-包含min函数的栈

单调栈

LC42-接雨水
LC84-柱状图中最大的矩形
LC85-最大矩形
LC496-下一个更大元素I
LC503-下一个更大元素II
LC739-每日温度

二叉树

二叉树的遍历

LC144-二叉树的前序遍历
LC94-二叉树的中序遍历
LC145-二叉树的后序遍历
LC102-二叉树的层次遍历
LC103-二叉树的锯齿形层序遍历(Z字形遍历)
二叉树的前序、中序、后序遍历(非递归实现)

二叉树的属性

LC100-相同的树
LC101-对称二叉树
LC104-二叉树的最大深度
LC110-平衡二叉树
LC111-二叉树的最小深度
LC112-路径总和
LC124-二叉树中的最大路径和
LC199-二叉树的右视图
LC222-完全二叉树的节点个数
LC257-二叉树的所有路径
LC404-左叶子之和
LC513-找树左下角的值
LC543-二叉树的直径

二叉树的修改与构造

LC105-重建二叉树(前序与中序遍历)
LC106-重建二叉树(中序和后序遍历)
LC226-翻转二叉树
LC297-二叉树的序列化与反序列化
LC617-合并二叉树
LC654-最大二叉树

二叉搜索树

二叉搜索树(BST):它或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。

LC98-验证二叉搜索树
LC108-将有序数组转换为二叉搜索树
LC450-删除二叉搜索树中的节点
LC501-二叉搜索树中的众数
LC530-二叉搜索树的最小绝对差
LC538-把二叉搜索树转换为累加树
LC669-修建二叉搜索树
LC700-二叉搜索树中的搜索
LC701-二叉搜索树中的插入操作
LC1382-将二叉搜索树变平衡

剑指offer54-二叉搜索树的第k大节点

二叉树的公共祖先问题

LC235-二叉搜索树的最近公共祖先
LC236-二叉树的最近公共祖先

非二叉树问题

LC208-实现Trie(前缀树)
LC1245-树的直径

其他

LC113-路径总和II
LC114-二叉树展开为链表
LC116-填充每个节点的下一个右侧节点指针
LC129-求根节点到叶节点数字之和

剑指Offer32II-从上到下打印二叉树II

二分查找

LC04-寻找两个正序数组的中位数
LC33-搜索旋转排序矩阵
LC34-在排序数组中查找元素的第一个和最后一个位置
LC35-搜索插入位置
LC69-平方根
LC153-寻找旋转排序数组中的最小值
LC154-寻找旋转排序数组中的最小值II
LC704-二分查找

剑指offer53-缺失的数字
剑指Offer53-I-在排序数组中查找数字I

排序

LC75-颜色分类
LC215-数组中的第K个最大元素
LC295-数据流的中位数
LC347-前K个高频元素(topK)
LC451-根据字符出现频率排序
LC1365-有多少小于当前数字的数字

双指针

LC11-盛水最多的容器
LC15-三数之和
LC26-删除有序数组中的重复项
LC88-合并两个有序数组
LC392-判断子序列
LC922-按奇偶排序数组II

回溯

组合

LC17-电话号码的字母组合
LC39-组合总和
LC40-组合总和II
LC77-组合
LC216-组合总和III

分割

LC93-复原IP地址
LC131-分割回文串

子集

LC78-子集
LC90-子集II

排列

LC46-全排列
LC47-全排列II

棋盘问题

LC37-解数独
LC51-N皇后
LC52-N皇后II
LC79-单词搜索

其他

LC22-括号生成
LC332-重新安排行程
LC491-递增子序列

模拟

LC31-下一个排列
LC43-大数相乘
LC54-螺旋矩阵
LC59-螺旋矩阵II
LC146-LRU缓存
LC172-阶乘后的零
LC263-丑数
LC264-丑数II
LC415-字符串相加(大数相加)
LC460-LFU缓存
LC657-机器人能否返回原点
LC752-打开转盘锁
LC925-长按键入
LC1979-找出数组的最大公约数

NC112-进制转换

剑指offer61-扑克牌中的顺子
剑指offer62-圆圈中最后剩下的数字

位运算

LC136-只出现一次的数字
LC137-只出现一次的数字II
LC191-位1的个数
LC260-只出现一次的数字III
LC1356-根据数字二进制下1的数目排序

动态规划

打家劫舍

LC198-打家劫舍
LC213-打家劫舍II
LC337-打家劫舍III

股票问题

LC121-买卖股票的最佳时机
LC122-买卖股票的最佳时机II
LC123-买卖股票的最佳时机III
LC188-买卖股票的最佳时机IV
LC309-最佳买卖股票时机含冷冻期
LC714-买卖股票的最佳时机含手续费

子序列问题

不连续子序列

LC300-最长上升序列
LC673-最长递增子序列的个数
LC1035-不相交的线
LC1143-最长公共子序列

NC92-最长公共子序列II

连续子序列

LC53-最大子序和
LC674-最长连续递增序列
LC718-最长重复子数组

编辑距离

LC72-编辑距离
LC115-不同的子序列
LC583-两个字符串的删除操作

回文

LC05-最长回文子串
LC132-分割回文串II
LC516-最长回文子序列
LC647-回文子串

其他

LC152-乘积最大子数组

背包问题

01背包

LC416-分割等和子集
LC474-一和零
LC494-目标和
LC1049-最后一块石头的重量II

完全背包

LC139-单词拆分
LC279-完全平方数
LC322-零钱兑换
LC377-组合总和IV
LC518-零钱兑换

贪心

LC134-加油站
LC135-分发糖果
LC376-摆动序列
LC406-根据身高重建队列
LC455-分发饼干
LC649-Dota2参议院
LC738-单调递增的数字
LC860-柠檬水找零
LC968-监控二叉树
LC1005-K次取反后最大化的数组和
LC1221-分割平衡字符串

区间问题

LC45-跳跃游戏II
LC55-跳跃游戏
LC435-无重叠区间
LC452-用最少数量的箭引爆气球
LC763-划分字母区间

其他

LC10-正则表达式匹配
LC32-最长有效括号
LC44-通配符匹配
LC62-不同路径
LC63-不同路径II
LC64-最小路径和
LC70-爬楼梯
LC96-不同的二叉搜索树
LC343-整数划分
LC221-最大正方形

LC746-使用最小花费爬楼梯
LC887-鸡蛋掉落

剑指offer46-把数字翻译成字符串

图论

LC127-单词接龙
LC200-岛屿数量
LC463-岛屿的周长
LC841-钥匙和房间

并查集

LC684-冗余连接
LC685-冗余连接II

代码题解题模板

滑动窗口模板
回溯模板
贪心算法讲解
动态规划-背包问题讲解
动态规划-股票买卖问题模板
单调栈模板
图论的BFS与DFS讲解
并查集讲解
位运算讲解

深度学习

实现BatchNorm2d
实现Conv2d

你可能感兴趣的:(leetcode)