首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
LeetCode题解
Rinai
创建于2025-02-08
订阅专栏
无
暂无订阅
共22篇文章
创建于2025-02-08
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
LeetCode--236. 二叉树的最近公共祖先
236. 二叉树的最近公共祖先 正文 根据递归的性质,在同一路径上,先遍历到的节点一定是后遍历到的节点的祖宗。 最近公共祖先有两种情况: 其中一个节点为最近公共祖先 两个节点所在的路径相交的那个节点为
LeetCode--23. 合并 K 个升序链表【堆和分治】
23. 合并 K 个升序链表 正文 这道题有多种解决方案 堆 比较容易,又比较直观的就是堆排序,将每个节点加入最小根堆中,依次弹出加入最后的链表,就可得出答案,事实上,并不需要每次都将所有链表加入,只
LeetCode--15. 三数之和
15. 三数之和 正文 三数之和,总体思路是排序+双指针,相较于暴力的O(n^3)优化了不少,遍历过程中也可以适当的剪枝来进一步优化, 具体思路如下: 先排序,将数组变成有序的,数组长度为n 随后第一
LeetCode--25. K 个一组翻转链表
25. K 个一组翻转链表 这道题的题目可以近似为将n个链表反转并拼接起来。 虽然给定的链表是拼接好了的,但是每一段链表反转之后依旧少不了拼接的这一部分,大体的思路如下: 循环遍历链表中的元素,每k个
LeetCode--146. LRU 缓存【Golang中的list】
146. LRU 缓存 前言 好题,想写一下,虽然之前用C++写过一次,但是不太熟悉c++的面向对象,也是云里雾里的,只会写个函数,这次也想熟悉一下golang的container/list。 正文
LeetCode--1143. 最长公共子序列
1143. 最长公共子序列 DP rt,经典动态规划,逐层遍历字符串,i表示text1的遍历到的元素下标,j表示text2遍历到的元素下标。 那么每遍历到一个元素,若两个字符串当前遍历的元素不相同,则
LeetCode--5. 最长回文子串
5. 最长回文子串 中心扩展 这道题虽然可以采取暴力枚举的方式来做,但是O(n^3),这道题比较直观的做法就是中心扩展法,遍历字符串,以每一个字符为中心扩展,依次下来取得长度最大的长度,用常数级的遍历
LeetCode--32. 最长有效括号【栈和dp】
32. 最长有效括号 前言 分享一下dp和栈两个方法 正文 这道题与20. 有效的括号类似,但是这道题需要计算出最长的有效括号字串的长度,所以做法并不完全一样。 动态规划 该题目dp方法最难的就是得出
LeetCode--416. 分割等和子集/494. 目标和【01背包】
416. 分割等和子集 494. 目标和 前言 哈哈,又是背包问题,一开始没写出来,写个题解加深记忆 正文 416. 分割等和子集 如题,给定一个数组,求是否能将这个数组划分为和相等的两部分。 乍一看
LeetCode--300. 最长递增子序列【DP+二分】
300. 最长递增子序列 前言 这道题的优化很不错,于是想来写一下。 正文 O(N^2)的解决方法很简单,这里不多赘述,如下: 接下来便是我们的优化思路,我们知道,O(N^2)的解决办法就是动态规划,
LeetCode-21. 合并两个有序链表,关于链表的复习
21. 合并两个有序链表 前言 由于以前一直写的数组模拟的链表,对于结构体链表的顾及比较少,偶然会想起结构体链表还不熟悉,故写此为,用来复习。 正文 题目是简单的有序地合并两个有序链表 因此我们要先创
LeetCode-239. 滑动窗口最大值,关于单调队列的复习
239. 滑动窗口最大值 前言 一个月前在acw上学习了队列,并做了滑动窗口这道题,一个月之后,我回到力扣,又遇见了这道题目,发现不会做了,深有感慨,故写此文,以便以后复习。 正文 题目分析 这道题想
LeetCode-19. 删除链表的倒数第 N 个结点,关于删除链表会遇见的指针问题
19. 删除链表的倒数第 N 个结点 前言 虽然这道题比较简单,但是我在做这道题时发现了几个需要注意的地方,故写个笔记提一下。 正文 先将源代码给出来 思路很简单,遍历找到链表的长度,然后再次遍历找到
LeetCode--394. 字符串解码【栈】
394. 字符串解码 前言 这道题跟表达式求值有点类似,费了点功夫,故来写一下题解 正文 题目如上,大意就是给定一个字符串,其中有格式为num [str]的字符串,我们需要将这些格式的字符串变换为nu
LeetCode-42. 接雨水(单调栈和双指针)
42. 接雨水 前言 记录一下接雨水这道题的我的思路过程,方便之后复习。 正文 题目很简单, 双指针做法 首先介绍一下双指针的做法 初始状态,左指针指向数组第一个位置,右指针指向数组的最后一个位置,
LeetCode-529.扫雷游戏题解C++广搜
529. 扫雷游戏 题目分析 编辑 初步分析,我们可以知道这个扫雷大体上和我们玩的经典扫雷并没有什么不同, 题目可以翻译为:选择一个坐标来点击,如果点到了雷’M‘,那就将这个坐标上的字符修改为’X‘
LeetCode--279. 完全平方数【动态规划】
279. 完全平方数 正文 题目 给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9
LeetCode--347. 前 K 个高频元素Golang中的堆(containerheap)
例题链接-前k个高频元素 前言 以前都是用的C++写算法题,最近也想熟悉一下golang的数据结构,故来一篇题解+堆分析。 正文 这里重点不在分析题目,在于golang中的 container/hea
LeetCode--84. 柱状图中最大的矩形【单调栈】
84. 柱状图中最大的矩形 正文 题目如下 这道题暴力很简单,但是时间复杂度是O(N^2),在这里我们不予考虑,我在这里主要介绍一下单调栈的做法。 单调栈主要的思路就是,将遍历到的元素下标压入栈中,如
LeetCode-1584. 连接所有点的最小费用,最小生成树模板题
1584. 连接所有点的最小费用 此题是一道简单的最小生成树的模板题, 下面细说 题目分析 Kruscal 题目给定了一些坐标(也就是点),由于每个坐标的x,y的组合都是独立的,为了方便在题目中我们使
下一页