Skip to content

YBFACC/MyLeetCode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

算法刷题代码仓库

使用的 js,ts 来进行刷题。 本地调试推荐 lc-tool ,方便调试。

* 1046-最后一块石头的重量-easy
* 778水位上升的泳池中游泳-hard
* 703-数据流中的第K大元素-easy
* 480-滑动窗口中位数-hard(双堆--延迟删除)
* LCP30-魔塔游戏-mid
* 692-前K个高频单词-mid
* 1846-减小和重新排列数组后的最大元素-mid
* 658-找到 K 个最接近的元素-mid

优先队列

* 973-最接近原点的-k-个点-mid
* 871-最低加油次数-hard
* 767-重构字符串-mid
* 621-任务调度器-mid
* 659-分割数组为连续子序列-mid
* 1642-可以到达的最远建筑-mid
* 826-安排工作以达到最大收益-mid
* 870-优势洗牌-mid(解法2:二分查找)
* 135-分发糖果-hard(贪心)
* 218-天际线问题-hard
* 1337-矩阵中战斗力最弱的 K 行-easy
* 295-数据流的中位数-hard(大顶+小顶)
* 面试题 17.14. 最小K个数-mid
* 857-雇佣 K 名工人的最低成本-hard

* 1666-改变二叉树的根节点-mid
* 331-验证二叉树的前序序列化-mid(出/入度)
* 671-二叉树中第二小的节点-easy(深搜)
* 987-二叉树的垂序遍历-hard(排序)
* 863-二叉树中所有距离为 K 的结点-mid
* 1104-二叉树寻路-mid
* 998-最大二叉树 II-mid
* 779-第K个语法符号-mid
* 2385-感染二叉树需要的总时间-mid
* 1376-通知所有员工所需的时间-mid

平衡二叉搜索树

* 975-奇偶跳-hard
* 220-存在重复元素-iii-mid
* 456-132-模式-mid
* 493-翻转对-hard
* 20-存在重复元素III-mid

最近公共祖先问题

* 1257-最小公共区域-mid(不是树结构)
* 1644-二叉树的最近公共祖先-II-mid
* 1650-二叉树的最近公共祖先-III-mid
* 1676-二叉树的最近公共祖先-IV-mid

先序

* 1022-从根到叶的二进制数之和-easy
* 1469-寻找所有的独生节点-easy
* 545-二叉树的边界-mid
* 1484-克隆含随机指针的二叉树-mid
* 938-二叉搜索树的范围和-easy(递归)
* 剑指 Offer 37-序列化二叉树-hard

层序遍历

* 1609-奇偶树-mid
* 1660-纠正二叉树-mid
* 314-二叉树的垂直遍历-mid
* 993-二叉树的堂兄弟节点-easy

中序遍历

* 面试题 17.12. BiNode
* 897-递增顺序搜索树-easy
* 783-二叉搜索树节点最小距离-easy
* 230-二叉搜索树中第K小的元素-mid

后序遍历

* 1522-N 叉树的直径-mid
* 437-路径总和 III-mid
* 687-最长同值路径-mid
* 652-寻找重复的子树-mid
* 2265-统计值等于子树平均值的节点数-mid
* 669-修剪二叉搜索树-mid

动态规划

* 276-栅栏涂色-easy
* 1563-石子游戏-v-hard
* 1230-抛掷硬币-mid(排列组合)
* 562-矩阵中最长的连续1线段-mid
* 132-分割回文串-II-hard
* 115-不同的子序列-hard
* 1143-最长公共子序列-mid
* 1477-找两个和为目标值且不重叠的子数组-mid
* 474-一和零-mid
* 1049-最后一块石头的重量-II-mid
* 518-零钱兑换-II-mid
* 494-目标和-mid(类似1049)
* 279-完全平方数-mid
* 740-删除并获得点数-mid
* 91-解码方法-mid
* 877-石子游戏-mid(区间dp)
* 264-丑数II-mid
* 368-最大整除子集-mid
* 377-组合总和-Ⅳ-mid(区间dp)
* 213-打家劫舍II-mid
* 403-青蛙过河-hard
* 1473-粉刷房子III-hard
* 1449-数位成本和为目标值的最大数字-hard(贪心、数位)
* 879-盈利计划-hard(背包问题)
* 1787-使所有区间的异或结果为零-hard(一维化二维,循环)
* 剑指 Offer 42-连续子数组的最大和-easy
* 1723-完成所有工作的最短时间-hard(状态压缩)
* 1269-停在原地的方案数-hard
* 1137-第 N 个泰波那契数-easy
* 313-超级丑数-mid
* 552-学生出勤记录 II-hard
* 516-最长回文子序列-mid
* 446-等差数列划分 II -子序列-hard
* 797-所有可能的路径-mid
* 剑指 Offer 10- I. 斐波那契数列-easy
* 583-两个字符串的删除操作-mid
* LCP 34-二叉树染色-mid(后序)
* 面试题 17.09. 第 k 个数
* 940-不同的子序列 II-hard
* 1668-最大重复子字符串-easy
* 813-最大平均值和的分组-mid
* 1774=最接近目标价格的甜点成本-mid

单串

* 256-粉刷房子-mid
* 265-粉刷房子-II-hard 类似(1289-下降路径最小和-ii-hard)
* 338-比特位计数-mid

双串

* 514-自由之路-hard

股票问题

* 122-买卖股票的最佳时机-II-easy

树形 dp

* 1644-二叉树的最近公共祖先-II-mid

广搜

* 286-墙与门-mid(多源)
* 690-员工的重要性-easy
* 909-蛇梯棋-mid
* 773-滑动谜题-hard
* 752-打开转盘锁-mid
* 815-公交路线-hard
* LCP 07-传递信息-easy
* 847-访问所有节点的最短路径-hard(状态压缩)
* 1034-边界着色-mid
* 1302-层数最深叶子节点的和-mid
* 864-获取所有钥匙的最短路径-hard(状态压缩)

双向广搜

* 127-单词接龙-mid
* 1345-跳跃游戏-iv-hard

二进制

* 338-比特位计数-mid
* 1018-可被5整除的二进制前缀-easy
* 338-比特位计数-mid(找规律)
* 191-位1的个数-easy
* 190-颠倒二进制位-easy
* 461-汉明距离-easy
* 231-2 的幂-easy
* 477-汉明距离总和-mid(排列组合)
* 1720-解码异或后的数组-easy
* 1734-解码异或后的排列-mid(1720升级版)
* 137-只出现一次的数字-II-mid
* 剑指Offer15.二进制中1的个数-easy
* 168-Excel表列名称-easy(26进制)
* 371-两整数之和-mid
* 476-数字的补数-easy
* 372-超级次方-mid
* 1470-重新排列数组-easy

深搜

* 514-自由之路-hard
* 851-喧闹和富有-mid
* 261-以图判树-mid
* 1631-最小体力消耗路径-mid(+二分)
* 1239-串联字符串的最大长度-mid
* 1600-皇位继承顺序-mid
* 87-扰乱字符串-hard
* 802-找到最终的安全状态-mid
* 576-出界的路径数-mid(记忆化)

滑动窗口问题

* 159-至多包含两个不同字符的最长子串-mid
* 1208-尽可能使字符串相等-mid
* 1423-可获得的最大点数-mid
* 1438-绝对差不超过限制的最长连续子数组-mid(单调队列)
* 904-水果成篮-mid
* 1234-替换子串得到平衡字符串-mid

贪心

* 406-根据身高重建队列-mid
* 402-移掉K位数字-mid
* 1564-把箱子放进仓库里-I-mid
* 670-最大交换-mid
* 452-用最少数量的箭引爆气球-mid
* 976-三角形的最大周长-easy
* 767-重构字符串-mid
* 948-令牌放置-mid
* 621-任务调度器-mid
* 659-分割数组为连续子序列-mid
* 861-翻转矩阵后的得分-mid
* 649-dota-2-参议院-mid
* 1642-可以到达的最远建筑-mid
* 738-单调递增的数字-mid
* 455-分发饼干-easy
* 605-种花问题-easy
* 435-无重叠区间-mid(类似452)
* 995-K连续位的最小翻转次数-hard(+差分)
* 330-按要求补齐数组-hard(数学)
* 395-至少有K个重复字符的最长子串-mid(递归)
* 1833-雪糕的最大数量-mid
* 1877-数组中最大数对和的最小值-mid(排序)
* 881-救生艇-mid
* 769-最多能完成排序的块-mid 
* 1710-卡车上的最大单元数-easy

分类讨论

* 161-相隔为-1-的编辑距离-mid(编辑距离的简单版)
* 2029-石子游戏 IX-mid

数学

* 233-数字-1-的个数-hard
* 402-移掉K位数字-mid
* 1015-可被-k-整除的最小整数-mid(取余)
* 204-计数质数-easy
* 728-自除数-easy
* 166-分数到小数-mid(竖式除法)
* 1017-负二进制转换-mid(长除法)
* 1131-绝对值表达式的最大值-mid(n维曼哈顿距离)
* 1590-使数组和能被P整除-mid(同余定理)
* 974-和可被-K-整除的子数组(同余定理)
* 189-旋转数组-mid(gcd-最大公约数)
* 1447-最简分数-mid(gcd)
* 1232-缀点成线-easy(斜率)
* 989-数组形式的整数加法(按位相加)
* 7-整数反转-easy
* 342-4的幂-easy
* 483-最小好进制-hard(二项定理)
* 149-直线上最多的点数-hard(斜率)
* 171-Excel 表列序号-easy(26进制)
* 413-等差数列划分-mid
* 458-可怜的小猪-hard(香农的信息论)
* 470-用 Rand7() 实现 Rand10()-mid(概率)
* 29-两数相除-mid(竖式除法)
* 1860-增长的内存泄露-mid(模拟)
* 1822-数组元素积的符号-easy
* 481-神奇字符串-mid
* 754-到达终点数字-mid
* 878-第 N 个神奇数字-hard(gcd)
* 805-数组的均值分割-hard(折半搜索)

找规律

* 390-消除游戏-mid
* 777-在LR字符串中交换相邻字符-mid
* 766-托普利茨矩阵-easy
* 233-数字 1 的个数-hard
* 1460-通过翻转子数组使两个数组相等-easy
* 667-优美的排列 II-mid
* 672-灯泡开关 Ⅱ-mid

画 x-y 轴折线图

* 910-最小差值-ii-mid

异或

* 389-找不同-easy

排列组合

* LCP22-黑白方格画-easy
* 923-三数之和的多种可能-mid
* 1010-总持续时间可被60整除的歌曲-mid
* 1128-等价多米诺骨牌对的数量-easy
* 90-子集-II-mid(后加入元素与已有的内容各项结合)
* 1711-大餐计数-mid
* 828-统计子串中的唯一字符-hard

旋转/环形问题--拼接原数据(A+A)

* 796-旋转字符串-easy
* 918-环形子数组的最大和-mid
* 503-下一个更大元素-II-mid(单调栈)
* 179-最大数-mid
* 1758-生成交替二进制字符串的最少操作数-easy

* 402-移掉K位数字-mid
* 456-132-模式-mid
* 439-三元表达式解析器-mid
* 232-用栈实现队列(双栈模拟)
* 227-基本计算器-II-mid
* 224-基本计算器-hard
* 150-逆波兰表达式求值-mid
* 173-二叉搜索树迭代器-mid
* 1190-反转每对括号间的子串-mid
* 726-原子的数量-hard
* 345-反转字符串中的元音字母-easy
* 678-有效的括号字符串-mid
* 946-验证栈序列-mid(模拟)

单调栈

* 85-最大矩形-hard(84题升级版)
* 1475-商品折扣后的最终价格-easy
* 901-股票价格跨度-mid

差分

* 252-会议室-easy
* 253-会议室-mid
* 1893-检查是否区域内所有整数都被覆盖-easy
* 1109-航班预订统计-mid

链表

* 148-排序链表-mid
* 1265-逆序打印不可变链表-mid
* 1669-合并两个链表-mid
* 86-分隔链表-mid
* 92-反转链表-II-mid
* 82-删除排序链表中的重复元素-II-mid
* 61-旋转链表-mid
* 88-合并两个有序数组-easy
* 1006-笨阶乘-mid
* 203-移除链表元素-easy
* 160-相交链表-easy(剑指 Offer 52-两个链表的第一个公共节点)
* 138-复制带随机指针的链表-mid(原地复制)
* 剑指 Offer 22-链表中倒数第k个节点-easy
* 237-删除链表中的节点-easy
* 641-设计循环双端队列(双向链表)
* 817-链表组件-mid

排序

* 969-煎饼排序-mid

基数排序

* 164-最大间距-hard

二分

* 1064-不动点-easy
* 1198-找出所有行中最小公共元素-mid
* 852-山脉数组的峰顶索引-easy
* 259-较小的三数之和-mid
* LCP28-采购方案-easy
* 278-第一个错误的版本-easy
* 1482-制作m束花所需的最少天数-mid
* 1011-在D天内送达包裹的能力-mid
* 981-基于时间的键值存储-mid
* 274-H 指数-mid
* 275-H 指数 II-mid(第一题的简化版)
* 剑指Offer53-I-在排序数组中查找数字I-easy
* 810-黑板异或游戏-hard(数学推导)
* 剑指 Offer II 069-山峰数组的顶部-easy
* 367-有效的完全平方数-easy
* 911-在线选举-mid
* 1608-特殊数组的特征值-easy

归并

* 148-排序链表-mid

哈希表

* 242-有效的字母异位词-easy
* 290-单词规律-easy
* 205-同构字符串-easy
* 1178-猜字谜-hard(状态压缩+暴力枚举)
* 705-设计哈希集合-easy
* 781-森林中的兔子-mid
* 451-根据字符出现频率排序-mid
* 645-错误的集合-easy
* 1418-点菜展示表-mid
* 244-最短单词距离II-mid
* 面试题 10.02-变位词组-mid
* 447-回旋镖的数量-mid
* 532-数组中的 k-diff 数对-mid
* 1224-最大相等频率-hard

区间问题

* 452-用最少数量的箭引爆气球-mid

树状数组

* 327-区间和的个数-hard(离散化)
* 493-翻转对-hard(离散化)
* 1505-最多 K 次交换相邻数位后得到的最小整数-hard
* 683-K 个关闭的灯泡-hard
* 307-区域和检索 - 数组可修改-mid
* 1395-统计作战单位数-mid

* 457-环形数组是否存在循环-mid
* 1583-统计不开心的朋友-mid

拓扑排序

* 851-喧闹和富有-mid
* 261-以图判树-mid
* 1203-项目管理-hard(双层)
* 1743-从相邻元素对还原数组-mid
* 797-所有可能的路径-mid

最小生成树

* 1584-连接所有点的最小费用-mid(prim)

最短路径

* 1631-最小体力消耗路径-mid(dijkstra)
* 778-水位上升的泳池中游泳-hard(dijkstra)
* 1334-阈值距离内邻居最少的城市(dijkstra,Floyd)
* 743-网络延迟时间-mid(BFS、链式前向星存图)
* 934-最短的桥(DFS,BFS)

字符串

* 186-翻转字符串里的单词-II-mid
* 1138-字母板上的路径-mid(二维网格)
* 1736-替换隐藏数字得到的最晚时间-easy
* 541-反转字符串 II-easy
* 165比较版本号-mid
* 187-重复的DNA序列-mid
* 38-外观数列-mid
* 640-求解方程-mid(模拟题)
* 1805-字符串中不同整数的数目-easy

硬做无技巧

* 163-缺失的区间-mid
* 54-螺旋矩阵-mid
* 59-螺旋矩阵-II-mid
* 73-矩阵置零-mid
* 1603-设计停车系统-easy
* LCP29-乐团站位-easy
* 551-学生出勤记录 I-easy
* 1646-获取生成数组中的最大值-easy
* 434-字符串中的单词数-easy
* 412-Fizz Buzz-easy
* 66-加一-easy
* 575-分糖果-easy
* 859-亲密字符串-easy
* 709-转换成小写字母-easy
* 748-最短补全词-easy
* 1464-数组中两元素的最大乘积-easy
* 1592-重新排列单词间的空格-easy
* 1598-文件夹操作日志搜集器-easy
* 1619-删除某些元素后的数组均值-easy
* 1636-按照频率将数组升序排序-easy
* 1790-仅执行一次字符串交换能否使两个字符串相等-easy
* 1700-无法吃午餐的学生数量-easy
* 816-模糊坐标-mid
* 1684-统计一致字符串的数目-easy
* 1742-盒子中小球的最大数量-easy
* 809-情感丰富的文字-mid
* 1779-找到最近的有相同 X 或 Y 坐标的点-easy
* 895-最大频率栈-hard
* 1812-判断国际象棋棋盘中一个格子的颜色-easy
* 1781-所有子字符串美丽值之和-mid
* 1945-字符串转化后的各位数字之和-easy
* 1806-还原排列的最少操作步数-mid

前缀和

* 1658-将-x-减到-0-的最小操作数-mid
* 1031-两个非重叠子数组的最大和-mid
* 724-寻找数组的中心索引-easy
* 303-区域和检索-数组不可变-easy
* 304-二维区域和检索-矩阵不可变-mid(二维前缀和)
* 525-连续数组-mid
* 523-连续的子数组和-mid
* 1744-你能在你最喜欢的那天吃到你最喜欢的糖果吗?-mid
* 1442-形成两个异或相等数组的三元组数目-mid
* 930-和相同的二元子数组-mid(有离散解法)
* 1074-元素和为目标值的子矩阵数量-hard(二维)
* 363-矩形区域不超过 K 的最大数值和(类似1074)
* 1838-最高频元素的频数-mid(二分定范围)
* 1480-一维数组的动态和-easy
* 1588-所有奇数长度子数组的和-easy
* 528-按权重随机选择-mid
* 1894-找到需要补充粉笔的学生编号-mid
* 1685-有序数组中差绝对值之和-mid
* 1664-生成平衡数组的方案数-mid
* 1124-表现良好的最长时间段-mid

数组

* 624-数组列表中的最大距离-mid
* 888-公平的糖果棒交换-easy(求和)
* 665-非递减数列-easy
* 119-杨辉三角-II-easy(滚动数组)
* 867-转置矩阵-easy
* 88-合并两个有序数组-easy
* 74-搜索二维矩阵-mid
* 414-第三大的数-easy
* 299-猜数字游戏-mid
* 1656-设计有序流-easy
* 915-分割数组-mid

回溯

* 842-将数组拆分成斐波那契序列-mid
* 1258-近义词句子-mid
* 131-分割回文串-mid(回文)
* 剑指 Offer 38-字符串的排列-mid
* 516-最长回文子序列-mid
* 2375-根据模式串构造最小数字-mid

查并集

* 1258-近义词句子-mid
* 547-省份数量-mid
* 1319-连通网络的操作次数-mid
* 1202-交换字符串中的元素-mid
* 684-冗余连接-mid
* 947-移除最多的同行或同列石头-mid
* 1489-找到最小生成树里的关键边和伪关键边-hard(kruskal,Tarjan)
* 721-账户合并-mid
* 959-由斜杠划分区域-mid(二维空间)
* 1579-保证图可完全遍历-hard(贪心)
* 803-打砖块-hard(逆向)
* 1631-最小体力消耗路径-mid(Kruskal)
* 778-水位上升的泳池中游泳-hard
* 399-除法求值-mid(维护权值)
* 765-情侣牵手-hard(连通分量--合并规律)
* 839-相似字符串组-hard

双指针

* 1099-小于K的两数之和-easy
* 992-K个不同整数的子数组-hard(离散化--atMostK)
* 567-字符串的排列-mid(指针距离固定--统计字母个数)
* 1004-最大连续1的个数III
* 697-数组的度
* 1052-爱生气的书店老板-mid
* 面试题-17.21-直方图的水量-hard
* 80-删除有序数组中的重复项-II-mid
* 153-寻找旋转排序数组中的最小值-mid(分类讨论)
* 154-寻找旋转排序数组中的最小值II-mid(递归)
* 27-移除元素-easy
* 26-删除有序数组中的重复项-easy
* 170-两数之和III-数据结构设计-easy
* 581-最短无序连续子数组-mid
* 611-有效三角形的个数-mid
* 443-压缩字符串-mid

trie 树

* 792-匹配子序列的单词数-mid(变形-节点指针集合)
* 208-实现 Trie (前缀树)-mid
* 1707-与数组中元素的最大异或值-hard(二进制)
* 421-数组中两个数的最大异或值-mid(1707简化版)
* 211-添加与搜索单词 - 数据结构设计-mid

* 792-匹配子序列的单词数-mid

递归

* 509-斐波那契数-easy
* 1047-删除字符串中的所有相邻重复项-easy(或栈)
* 81-搜索旋转排序数组-II-mid
* 263-丑数-easy

回文

* 1332-删除回文子序列-easy

最长递增序列(Longest Increasing Subsequence)

* 674-最长连续递增序列-easy
* 354-俄罗斯套娃信封问题-hard(降维)

摩尔投票法

* 面试题 17.10-主要元素-easy
* 229-求众数 II-mid

分治

* 932-漂亮数组-mid(奇偶性)
* 240-搜索二维矩阵 II-mid

最长公共子序列问题(LCS)

* 1713-得到子序列的最少操作次数-hard

脑筋急转弯

* 789-逃脱阻碍者-mid
* 453-最小操作次数使数组元素相等-easy
* 598-范围求和 II-easy
* 423-从英文中重建数字-mid
* 775-全局倒置与局部倒置-mid

二叉搜索树(BST)

* 700-二叉搜索树中的搜索-easy

随机

* 384-打乱数组-mid(洗牌算法)

矩阵

* 807-保持城市天际线-mid
* 764-最大加号标志-mid

About

leetcode解题代码

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published