
LeetCode
文章平均质量分 57
无
Rinai_R
github主页: https://github.com/Rinai-R
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode--198. 打家劫舍【从返回最大值到输出路径】
有一段时间没写blog了,只是因为感觉遇到的题没啥含金量,写不出什么东西来,就随便讲下思路就push上github了,感觉还是比较水,就没上传到博客上面,哈哈,有兴趣可以看看我的。这部分还是花了一点时间,总体思路是用三位数组解决的,至于测试,我是通过遍历path,将ans加起来,然后return,通过了力扣的测试,应该是没啥问题的。每次走都有一次路径的保存,同时有偷和不偷的两种选择,这个思路和上面是一样的,虽然这里完全可以优化很多空间,但是为了好理解,我直接把没有优化过的放出来了。原创 2025-03-15 10:07:16 · 272 阅读 · 0 评论 -
LeetCode--94. 二叉树的中序遍历
给定一个二叉树的根节点root,返回它的遍历。原创 2025-03-02 09:21:18 · 551 阅读 · 0 评论 -
LeetCode--76. 最小覆盖子串
值得一提的是,虽然s可能会引入新的字符到哈希表里面,但是实际上是不会造成什么影响的,在哈希表中,正数表示l,r维护的字符串还需要这个字符,而0,表示此时刚好满足这个字符的需求,负数表示可有可无。如果引入了另外的字符,那么之后他不再有可能遍历到使它对应的mp值为0的位置。首先创建一个mp,统计target目标字符串的字母数量,再用一个cnt变量存储存在的字符种类,最开始只会暴力滑动窗口做法:O(M*N)或者O(c\N+M)然后怎么都想不出来怎么优化到O(M + N)所有字符的子串,则返回空字符串。原创 2025-03-01 09:54:12 · 668 阅读 · 0 评论 -
LeetCode--4. 寻找两个正序数组的中位数
主要思路是将数组分成左右两个部分进行计算,代码内嵌详细注释。难想,是我无法想出来的二分,有点顶级的题目,开背!请你找出并返回这两个正序数组的。的正序(从小到大)数组。算法的时间复杂度应该为。原创 2025-02-28 10:11:44 · 345 阅读 · 0 评论 -
LeetCode--41. 缺失的第一个正数
一定存在于原数组中,相反,如果为正数,那么就是不存在于原数组中的,随后进行最后一层遍历,就可以拿到我们的答案了,如果遍历完了,也没有正数的话,说明n + 1就是我们最后的答案。第二次遍历,拿到数组中每个元素的绝对值,由于我没找的是没有出现的最小正整数,所以找到的数字一定不会>=n,所以我们可以利用这种性质,将数组中每个元素的值作为。由于我们已经知道,数组中已经不存在负数,也就是说,如果这个下标的值为负数,那么这个下标。第一次遍历,将所有<=0的数字设为n+1,以便不会影响之后的标记,请你实现时间复杂度为。原创 2025-02-28 08:39:14 · 617 阅读 · 0 评论 -
LeetCode--142. 环形链表 II
给定一个链表的头节点head,返回链表开始入环的第一个节点。如果链表无环,则返回null。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(如果pos是-1,则在该链表中没有环。pos,仅仅是为了标识链表的实际情况。链表。一刷,二刷都没独立写出来,在这里写个题解,加深记忆。原创 2025-02-25 12:38:27 · 367 阅读 · 0 评论 -
LeetCode--31. 下一个排列
整数数组的一个就是将其所有成员以序列或线性顺序排列。arr[1,2,3][1,3,2][3,1,2][2,3,1]整数数组的是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组的就是在这个有序容器中排在它后面的那个排列。如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。[1,3,2][3,1,2][1,2,3][3,2,1]给你一个整数数组nums,找出nums的下一个排列。必须**原创 2025-02-25 09:04:03 · 606 阅读 · 0 评论 -
LeetCode--93. 复原 IP 地址
正好由四个整数(每个整数位于0到255之间组成,且不能含有前导0),整数之间用'.'分隔。给定一个只包含数字的字符串s,用以表示一个 IP 地址,返回所有可能的,这些地址可以通过在s中插入'.'来形成。你重新排序或删除s中的任何数字。你可以按顺序返回答案。原创 2025-02-24 09:34:13 · 623 阅读 · 0 评论 -
LeetCode--124. 二叉树中的最大路径和
二叉树中的被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中。该路径节点,且不一定经过根节点。是路径中各节点值的总和。给你一个二叉树的根节点root,返回其。原创 2025-02-24 08:42:23 · 658 阅读 · 0 评论 -
LeetCode--82. 删除排序链表中的重复元素 II
基本思路是遍历Node,当Node.Val!删除原始链表中所有重复数字的节点,只留下不同的数字。给定一个已排序的链表的头。原创 2025-02-23 12:40:20 · 428 阅读 · 0 评论 -
LeetCode--200. 岛屿数量
给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。原创 2025-02-20 10:50:44 · 596 阅读 · 0 评论 -
LeetCode--236. 二叉树的最近公共祖先
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(原创 2025-02-19 12:05:57 · 414 阅读 · 0 评论 -
LeetCode--23. 合并 K 个升序链表【堆和分治】
给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。原创 2025-02-17 14:58:34 · 611 阅读 · 0 评论 -
LeetCode--15. 三数之和
给你一个整数数组nums,判断是否存在三元组满足i!= ji!= k且j!= k,同时还满足。请你返回所有和为0且不重复的三元组。**注意:**答案中不可以包含重复的三元组。原创 2025-02-16 13:35:10 · 754 阅读 · 0 评论 -
LeetCode--25. K 个一组翻转链表
循环遍历链表中的元素,每k个节点为一组,用head和tail来维护这段链表,然后需要一个变量prev来存储head的前面一个节点是什么,在链表反转操作时候,此时,tail相当于这段链表的head,所以tail就可以作为下一段链表的prev,由此来进行找到下一段链表的head和tail。是一个正整数,它的值小于或等于链表的长度。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。的整数倍,那么请将最后剩余的节点保持原有顺序。个节点一组进行翻转,请你返回修改后的链表。这道题,有需要可以看看我的。原创 2025-02-15 14:08:04 · 669 阅读 · 0 评论 -
LeetCode--146. LRU 缓存【Golang中的list】
好题,想写一下,虽然之前用C++写过一次,但是不太熟悉c++的面向对象,也是云里雾里的,只会写个函数,这次也想熟悉一下golang的container/list。Golang里面有这么一个list真是太棒了~原创 2025-02-14 15:56:34 · 1007 阅读 · 0 评论 -
LeetCode--1143. 最长公共子序列
给定两个字符串text1和text2,返回这两个字符串的最长的长度。如果不存在,返回0。一个字符串的是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。"ace""abcde""aec""abcde"两个字符串的是这两个字符串所共同拥有的子序列。原创 2025-02-12 14:57:57 · 427 阅读 · 1 评论 -
LeetCode--5. 最长回文子串
给你一个字符串s,找到s中最长的回文子串。原创 2025-02-12 13:59:57 · 647 阅读 · 0 评论 -
LeetCode--32. 最长有效括号【栈和dp】
分享一下dp和栈两个方法。原创 2025-02-11 14:13:51 · 453 阅读 · 0 评论 -
LeetCode--152. 最大乘积子数组【DP】
最近决定要稍微多写一点题解了,只要是第一次写错的,争取都写一遍吧, 欢迎交流学习。原创 2025-02-09 13:50:00 · 565 阅读 · 0 评论 -
LeetCode--300. 最长递增子序列【DP+二分】
这道题的优化很不错,于是想来写一下。之前还写过这个优化,结果现在就忘了,不得不说,算法真得多复习~原创 2025-02-08 18:01:30 · 744 阅读 · 0 评论 -
LeetCode--279. 完全平方数【动态规划】
如此一来,便可以得出我们需要使用动态规划来解决,类似于背包问题,想到dp,这道题就比较简单了。是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。每次+1,都需要根据之前的状态来更新,最后返回。抛开数学方法不提,这道题的突破口在于把整数。:给定一个整数,要求将它分解为。的形式,而这个数字必然小于。的完全平方数的最少数量。原创 2025-02-07 13:54:13 · 660 阅读 · 2 评论 -
LeetCode--347. 前 K 个高频元素/Golang中的堆(container/heap)
以前都是用的C++写算法题,最近也想熟悉一下golang的数据结构,故来一篇题解+堆分析。这部分定义了我们的堆中元素的基本结构,每个元素有两部分组成,这也令go中的堆的元素更加灵活,可以支持很多数据结构。以上提到方法都需要我们自己定义一个堆,并实现Heap的接口,才能对heap的函数进行调用,从而实现堆的效果。总的来说,go的堆虽然实现比较繁琐,但是管理起来却比较灵活,其实比起c++里面的stl,go里面的container/heap让我更有写的欲望吧…😋。原创 2025-02-02 15:39:12 · 966 阅读 · 0 评论 -
LeetCode--84. 柱状图中最大的矩形【单调栈】
这道题思路来源于bilibili,如果觉得不清晰可以看看这个视频。原创 2025-01-31 13:49:31 · 615 阅读 · 0 评论 -
LeetCode--394. 字符串解码【栈】
这道题跟表达式求值有点类似,费了点功夫,故来写一下题解如果有问题,欢迎留言!原创 2025-01-30 15:02:03 · 580 阅读 · 0 评论 -
LeetCode--33. 搜索旋转排序数组【直接二分】
关于这道题,我最开始想把这个旋转数组还原回去,但是后来发现没有那么麻烦,直接二分即可,重点在于关于当前区间的有序判断,故来写一份题解来分享一下。这道题到这里就结束了,如果还是没明白,或者有什么问题,欢迎给我留言!原创 2025-01-19 12:07:54 · 623 阅读 · 0 评论 -
LeetCode--437. 路径总和 III【前缀和】
感觉这道题思路很有意思,写一下题解,帮助记忆以上便是关于这道题前缀和的做法,如果想知道递归是怎么做的,可以点击原链接看看题解哦,很简单的。原创 2025-01-09 12:01:24 · 547 阅读 · 0 评论 -
LeetCode-19. 删除链表的倒数第 N 个结点,关于删除链表会遇见的指针问题
虽然这道题比较简单,但是我在做这道题时发现了几个需要注意的地方,故写个笔记提一下。以上的想法是我自己思考的,如果有不对的地方麻烦请指出来~原创 2024-12-17 10:37:34 · 691 阅读 · 1 评论 -
LeetCode-529.扫雷游戏题解C++广搜
总的来说,这道题是一道简单的广搜模板题,多做题,多思考,学会判断题目在考我们什么,只要知道了这一点,就很简单了,剩下的就是调bug了(逃)原创 2024-12-04 15:25:50 · 530 阅读 · 0 评论 -
LeetCode-1584. 连接所有点的最小费用,最小生成树模板题
克鲁斯卡尔算法的模板题~原创 2024-12-04 21:57:58 · 415 阅读 · 0 评论 -
LeetCode-21. 合并两个有序链表,关于链表的复习
结构体链表的复习原创 2024-12-05 11:55:31 · 357 阅读 · 0 评论 -
LeetCode-239. 滑动窗口最大值,关于单调队列的复习
一个月前在acw上学习了队列,并做了滑动窗口这道题,一个月之后,我回到力扣,又遇见了这道题目,发现不会做了,深有感慨,故写此文,以便以后复习。多复习才是正道,在往前学习的同时,也要记得回头看看,指不定哪天就忘了。原创 2024-12-06 14:48:14 · 480 阅读 · 0 评论 -
LeetCode-42. 接雨水(单调栈和双指针)
记录一下接雨水这道题的我的思路过程,方便之后复习。这两种做法并非自己想出来的,而是通过看0x3f的视频学会的,然后通过自己的理解写出来的blog目的是为了巩固自己的知识,希望也能帮助到你吧~原创 2024-12-16 16:46:17 · 1234 阅读 · 0 评论