leetcode:NeetCode.io配套LeetCode题解,多语言实现与持续更新

Leetcode solutions

Branch17Tags0
FilesLast commitLast update
1 year ago
3 years ago
1 month ago
1 year ago
3 months ago
1 year ago
1 year ago
1 year ago
1 month ago
1 year ago
1 year ago
8 months ago
3 months ago
3 months ago
6 months ago
1 year ago
1 year ago
1 year ago
1 year ago
4 years ago
1 year ago
1 year ago
3 years ago
3 years ago
6 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago

Leetcode 题解库 🚀 NeetCode.io

本仓库包含 NeetCode.io 网站上的题解,也包括 NeetCode YouTube 频道 中展示的题解。该网站会定期从本仓库更新新的题解!


以下语言的题解将在 NeetCode.io 网站上链接展示:

Python、Java、JavaScript、C++、Go、Swift、C#、TypeScript、Rust、Kotlin、Ruby、C、Scala 和 Dart

也欢迎提交 leetcode.com 支持的其他语言的题解!

贡献指南

在提交 PR 前,请先阅读 贡献指南

如需贡献,请先 Fork 本仓库,然后提交 PR 添加 缺失的题解(需为支持的语言)。

如果您希望获得仓库的协作者权限,以便合并自己的 PR 或审核他人的 PR,请告知我。

贡献者

缺失的题解

数组与哈希表

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
0217 - 存在重复元素
0242 - 有效的字母异位词
1929 - 数组串联
1299 - 将每个元素替换为右侧最大元素
0392 - 判断子序列
0058 - 最后一个单词的长度
0001 - 两数之和
0014 - 最长公共前缀
0049 - 字母异位词分组
0118 - 杨辉三角
0027 - 移除元素
0929 - 独特的电子邮件地址
0205 - 同构字符串
0605 - 种花问题
0169 - 多数元素
0496 - 下一个更大元素 I
0724 - 寻找数组的中心下标
0303 - 区域和检索 - 数组不可变
0448 - 找到所有数组中消失的数字
1189 - “气球” 的最大数量
0290 - 单词规律
0705 - 设计哈希集合
0706 - 设计哈希映射
0912 - 排序数组
0347 - 前 K 个高频元素
0238 - 除自身以外数组的乘积
0036 - 有效的数独
0271 - 字符串的编码与解码
0128 - 最长连续序列
0075 - 颜色分类
0535 - 编码与解码 TinyURL
0554 - 砖墙
0122 - 买卖股票的最佳时机 II
0560 - 和为 K 的子数组
1930 - 长度为 3 的不同回文子序列
1963 - 使字符串平衡的最少交换次数
2001 - 可互换矩形的组数
2002 - 两个回文子序列长度的最大乘积
2017 - 网格游戏
0438 - 找到字符串中所有字母异位词
0028 - 找出字符串中第一个匹配项的下标
0280 - 摆动排序
0179 - 最大数
0523 - 连续的子数组和
0838 - 推多米诺
0187 - 重复的DNA序列
0380 - Insert Delete Get Random O(1)
1461 - 检查字符串是否包含所有长度为 K 的二进制子串
0304 - 二维区域和检索 - 矩阵不可变
0665 - 非递减数列
0041 - 缺失的第一个正数
1822 - 数组元素积的符号
2215 - 找出两数组的不同
1603 - 设计停车系统
2348 - 全零子数组的数目
2405 - 字符串的最优划分
1396 - 设计地铁系统
2483 - 商店的最少代价
0068 - 文本左右对齐
2306 - 公司命名

双指针

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
0125 - 验证回文串
0680 - 验证回文串 II
1984 - K 个最高分与最低分之差
1768 - 交替合并字符串
0344 - 反转字符串
0088 - 合并两个有序数组
0283 - 移动零
0026 - 删除有序数组中的重复项
0080 - 删除有序数组中的重复项 II
0167 - 两数之和 II - 输入有序数组
0015 - 三数之和
0018 - 四数之和
0011 - 盛最多水的容器
1498 - 满足条件的子序列数目
0189 - 轮转数组
1968 - 元素不等于相邻元素平均值的数组
0881 - 救生艇
0042 - 接雨水

滑动窗口

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
0121 - 买卖股票的最佳时机
0219 - 存在重复元素 II
1343 - 大小为 K 且平均值大于等于阈值的子数组数目
0003 - 无重复字符的最长子串
0424 - 替换后的最长重复字符
0567 - 字符串的排列
1838 - 最高频元素的频数
0904 - 水果成篮
1456 - 定长子串中元音的最大数目
1888 - 使二进制字符串字符交替的最少翻转次数
0209 - 长度最小的子数组
0658 - 找到 K 个最接近的元素
1658 - 将 x 减到 0 的最小操作数
0076 - 最小覆盖子串
0239 - 滑动窗口最大值

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
0020 - 有效的括号
0682 - 棒球比赛
0225 - 用队列实现栈
0155 - 最小栈
0150 - 逆波兰表达式求值
2390 - 从字符串中移除星号
0946 - 验证栈序列
0022 - 括号生成
0735 - 行星碰撞
0739 - 每日温度
0901 - 股票价格跨度
0853 - 车队
0071 - 简化路径
0394 - 字符串解码
0402 - 移掉 K 位数字
1209 - 删除字符串中的所有相邻重复项 II
0456 - 132 模式
0895 - 最大频率栈
0084 - 柱状图中最大的矩形

二分查找

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
0704 - 二分查找
0035 - 搜索插入位置
0374 - 猜数字大小
0441 - 排列硬币
0977 - 有序数组的平方
0367 - 有效的完全平方数
0069 - x 的平方根
0540 - 有序数组中的单一元素
1011 - 在 D 天内送达包裹的能力
0162 - 寻找峰值
2300 - 咒语和药水的成功对数
0074 - 搜索二维矩阵
0875 - 爱吃香蕉的珂珂
2616 - 最小化数对的最大差值
0153 - 寻找旋转排序数组中的最小值
0033 - 搜索旋转排序数组
0081 - 搜索旋转排序数组 II
0981 - 基于时间的键值存储
0034 - 在排序数组中查找元素的第一个和最后一个位置
1898 - 可移除字符的最大数目
0116 - 填充每个节点的下一个右侧节点指针
1268 - 搜索推荐系统
0410 - 分割数组的最大值
0004 - 寻找两个正序数组的中位数

链表

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
0206 - 反转链表
0021 - 合并两个有序链表
0234 - 回文链表
0203 - 移除链表元素
0083 - 删除排序链表中的重复元素
0876 - 链表的中间结点
0160 - 相交链表
0143 - 重排链表
2130 - 链表最大孪生和
0019 - 删除链表的倒数第 N 个结点
1721 - 交换链表中的节点
0460 - LFU 缓存
0138 - 复制带随机指针的链表
0707 - 设计链表
1472 - 设计浏览器历史记录
0002 - 两数相加
0141 - 环形链表
0287 - 寻找重复数
0024 - 两两交换链表中的节点
0148 - 排序链表
0086 - 分隔链表
0061 - 旋转链表
0092 - 反转链表 II
0622 - 设计循环队列
0147 - 对链表进行插入排序
0725 - 分隔链表
0146 - LRU 缓存
0023 - 合并 K 个升序链表
0025 - K 个一组翻转链表

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
0094 - 二叉树的中序遍历
0144 - 二叉树的前序遍历
0145 - 二叉树的后序遍历
0226 - 翻转二叉树
0104 - 二叉树的最大深度
0543 - 二叉树的直径
0110 - 平衡二叉树
0100 - 相同的树
0572 - 另一棵树的子树
0108 - 将有序数组转换为二叉搜索树
0617 - 合并二叉树
0112 - 路径总和
0606 - 根据二叉树创建字符串
0235 - 二叉搜索树的最近公共祖先
0701 - 二叉搜索树中的插入操作
0450 - Delete Node in a BST
0102 - Binary Tree Level Order Traversal
0199 - Binary Tree Right Side View
0783 - Minimum Distance between BST Nodes
0101 - Symmetric Tree
1443 - Minimum Time to Collect All Apples in a Tree
0103 - Binary Tree Zigzag Level Order Traversal
0427 - Construct Quad Tree
0652 - Find Duplicate Subtrees
0958 - Check Completeness of a Binary Tree
0106 - Construct Binary Tree from Inorder and Postorder Traversal
0662 - Maximum Width of Binary Tree
1376 - Time Needed to Inform All Employees
1448 - Count Good Nodes In Binary Tree
0098 - Validate Binary Search Tree
0230 - Kth Smallest Element In a Bst
0105 - Construct Binary Tree From Preorder And Inorder Traversal
0096 - 不同的二叉搜索树
0095 - 不同的二叉搜索树 II
0129 - 求根节点到叶节点数字之和
0337 - 打家劫舍 III
0951 - 翻转等价二叉树
1993 - 树上的操作
0894 - 所有可能的满二叉树
0513 - 找树左下角的值
0669 - 修剪二叉搜索树
0173 - 二叉搜索树迭代器
0538 - 把二叉搜索树转换为累加树
0124 - 二叉树中的最大路径和
0297 - 二叉树的序列化与反序列化

字典树

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
0208 - 实现 Trie (前缀树)
0211 - 设计添加与搜索单词的数据结构
2707 - 字符串中的额外字符
0212 - 单词搜索 II

堆 / 优先队列

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
0703 - 数据流中的第 K 大元素
1046 - 最后一块石头的重量
0973 - 最接近原点的 K 个点
0215 - 数组中的第 K 个最大元素
0621 - 任务调度器
0355 - 设计推特
1675 - 数组的最小偏移量
2542 - 最大子序列的分数
1834 - 单线程 CPU
1845 - 座位预约管理系统
1882 - 使用服务器处理任务
1985 - 找出数组中的第 K 大整数
0767 - 重构字符串
1405 - 最长快乐字符串
1094 - 拼车
0295 - 数据流的中位数
1383 - 最大的团队表现值
0502 - IPO

回溯法

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
0078 - 子集
0039 - 组合总和
0077 - 组合
0046 - 全排列
0090 - 子集 II
0040 - 组合总和 II
0047 - 全排列 II
0079 - 单词搜索
0131 - 分割回文串
0093 - 复原 IP 地址
0017 - 电话号码的字母组合
0473 - 火柴拼正方形
1849 - 将字符串拆分为递减的连续值
1980 - 找出不同的二进制字符串
1239 - 串联字符串的最大长度
0698 - 划分为k个相等的子集
0051 - N 皇后
0052 - N 皇后 II

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
0463 - 岛屿的周长
0953 - 验证外星语词典
0200 - 岛屿数量
0133 - 克隆图
0695 - 岛屿的最大面积
1905 - 统计子岛屿
0417 - 太平洋大西洋水流问题
0130 - 被围绕的区域
1466 - 重新规划路线
0994 - 腐烂的橘子
0286 - 墙与门
0909 - 蛇梯棋
0752 - 打开转盘锁
0802 - 找到最终的安全状态
0207 - 课程表
0210 - 课程表 II
1462 - 课程表 IV
1958 - 检查操作是否合法
0934 - 最短的桥
1091 - 二进制矩阵中的最短路径
0684 - 冗余连接
0323 - 无向图中连通分量的数目
0261 - 以图判树
0721 - 账户合并
2359 - 找到离给定两个节点最近的节点
1162 - 地图分析
1129 - 颜色交替的最短路径
2477 - 到达首都的最少油耗
2492 - 两个城市间路径的最小分数
1254 - 统计封闭岛屿的数目
1020 - 飞地的数量
1557 - 可以到达所有点的最少点数目
0785 - 判断二分图
0399 - 除法求值
2101 - 引爆最多的炸弹
1857 - 有向图中最大颜色值
1553 - 吃掉 N 个橘子的最少天数
0127 - 单词接龙

高级图论

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
1631 - 最小体力消耗路径
0332 - 重新安排行程
1584 - 连接所有点的最小费用
0743 - 网络延迟时间
1514 - 概率最大的路径
0778 - 水位上升的泳池中游泳
0269 - 火星词典
0787 - K 站中转内最便宜的航班
2421 - 好路径的数目
1579 - 保证图可完全遍历的最大边数
1489 - 找到最小生成树里的关键边和伪关键边

一维动态规划

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
0070 - 爬楼梯
0746 - 使用最小花费爬楼梯
0198 - 打家劫舍
0213 - 打家劫舍 II
0005 - 最长回文子串
0647 - 回文子串
0091 - 解码方法
0322 - 零钱兑换
0152 - 乘积最大子数组
0139 - 单词拆分
0300 - 最长递增子序列
0416 - 分割等和子集
0120 - 三角形最小路径和
0740 - 删除并获得点数
0256 - 粉刷房子
0377 - 组合总和 Ⅳ
0279 - 完全平方数
2369 - 检查数组是否存在有效划分
1856 - 子数组最小乘积的最大值
0983 - 最低票价
0343 - 整数拆分
0673 - 最长递增子序列的个数
0691 - 贴纸拼词
1137 - 第 N 个泰波那契数
1035 - 不相交的线
2140 - 解决智力问题
2466 - 统计构造好字符串的方案数
0837 - 新21点
1626 - 无冲突的最佳球队
1406 - 石子游戏 III
0472 - 连接词
1799 - N 次操作后的最大分数和
1964 - 找出到每个位置为止最长的有效障碍赛跑路线
1359 - 有效的快递序列数目

二维动态规划

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
0062 - 不同路径
0063 - 不同路径 II
1143 - 最长公共子序列
0516 - 最长回文子序列
1049 - 最后一块石头的重量 II
0309 - 最佳买卖股票时机含冷冻期
0518 - 零钱兑换 II
0494 - 目标和
0097 - 交错字符串
0877 - 石子游戏
0064 - 最小路径和
0329 - 矩阵中的最长递增路径
0221 - 最大正方形
0474 - 一和零
5782 - 最大交替子序列和
0115 - 不同的子序列
0072 - 编辑距离
1220 - 统计元音字母序列的数目
0312 - 戳气球
1866 - 重排棍子以获得 K 个可见的棍子
0010 - 正则表达式匹配
1140 - 石子游戏 II
0926 - 将字符串翻转到单调递增
2218 - 从栈中取出 K 个硬币的最大面值和
0920 - 播放列表的数量
1639 - 给定字典构造目标字符串的方案数
0879 - 盈利计划
1547 - 切棍子的最小成本

贪心算法

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
0053 - 最大子数组和
0918 - 环形子数组的最大和
0978 - 最长湍流子数组
0055 - 跳跃游戏
0045 - 跳跃游戏 II
1871 - 跳跃游戏 VII
0134 - 加油站
0846 - 一手顺子
2439 - 最小化数组中的最大值
0649 - Dota2 参议院
1423 - 可获得的最大点数
1899 - 合并三元组以形成目标三元组
0763 - 划分字母区间
0678 - 有效的括号字符串
1921 - 消灭怪物的最大数量
1029 - 两地调度
0646 - 最长数对链
1647 - 字符频次唯一的最小删除次数
135- - Candy

区间

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
0057 - Insert Interval
0056 - Merge Intervals
0435 - Non Overlapping Intervals
0252 - Meeting Rooms
0253 - Meeting Rooms II
1288 - Remove Covered Intervals
1851 - Minimum Interval to Include Each Query
0352 - Data Stream as Disjoint Intervals

数学与几何

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
0168 - Excel 表列名称
1071 - 字符串的最大公因子
1523 - 在区间范围内统计奇数数目
1572 - 矩阵对角线元素的和
0149 - 直线上最多的点数
0048 - 旋转图像
0054 - 螺旋矩阵
0059 - 螺旋矩阵 II
0073 - 矩阵置零
0202 - 快乐数
0066 - 加一
0009 - 回文数
0263 - 丑数
1260 - 二维网格迁移
0013 - 罗马数字转整数
0012 - 整数转罗马数字
0050 - Pow(x, n)
0043 - 字符串相乘
2013 - Detect Squares
1041 - Robot Bounded In Circle
0006 - Zigzag Conversion
2028 - Find Missing Observations

位运算

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
0136 - 只出现一次的数字
0191 - 位1的个数
0338 - 比特位计数
0190 - 颠倒二进制位
0268 - 丢失的数字
1470 - 重新排列数组
0989 - 数组形式的整数加法
0371 - 两整数之和
0007 - 整数反转
0067 - 二进制求和

JavaScript

题目 文章 C C++ C# Dart GO 提示 Java JS Kotlin Python Ruby Rust Scala Swift TS
2667 - 创建 Hello World 函数
2620 - 计数器
2665 - 计数器 II
2635 - 对数组中的每个元素应用变换
2634 - 从数组中筛选元素
2626 - 数组归约变换
2629 - 函数组合
2666 - 允许函数调用一次
2623 - 记忆化
2632 - 柯里化
2621 - 休眠
2637 - Promise 时间限制
2636 - Promise 池
2622 - 带时间限制的缓存
2627 - 防抖
2676 - 节流
2628 - JSON 深度相等
2633 - 将对象转换为 JSON 字符串
2675 - 对象数组转换为矩阵
2700 - 两个对象的差异
2677 - 分块数组
2625 - 深度嵌套数组扁平化
2619 - 数组原型的最后一个元素
2631 - 分组
2618 - 检查对象是否为类的实例
2693 - 用自定义上下文调用函数
2694 - 事件发射器
2695 - 数组包装器
2648 - 生成斐波那契数列
2649 - 嵌套数组生成器

需要更新 README 吗?请改为更新模板。

Introduction

力扣解决方案【此简介由AI生成】

Customize your domain
426.47 K2.48 KVisit GitHub