自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 leetcodehot100 矩阵置零

额外使用一个boolean变量用来判断第一列是否为零。另外第一行除了第一个用来标记当前的列是否为零,第一列用来标记当前行是否标记为零。i++){//将记录所有应该置零的地方。//判断第一列是否存在零。

2025-08-16 20:05:18 98

原创 leetcode hot100数组:缺失的第一个正数

如何进行排列,只需要遍历到某个索引,然后将这个地方的数据放到合适的地方就行了。应当让这两个数交换:nums[i] 和nums[nums[i]-1],之所以减一就是为了满足上述要求。那么交换一次就行了吗?不行,因为交换过来的数不一定就是放到了合适的位置,所以需要while循环。为了知道第一个缺失的正数,可以将所有的整数按照顺序放到数组里面,然后遍历数组,哪个地方不是对应的正数,那么就缺失了这个地方的对应的正数。需要放进数组进行排列的数据需要满足要求:正数、大小小于等于数组大小的数。

2025-08-16 16:33:45 56

原创 leetcode hot100数组:除自身以外的数组的乘积

不允许用除法那么就是前缀乘积*后缀乘积。

2025-08-15 13:42:33 135

原创 leetcode hot100 数组:轮转数组

本题轮转数组,其实反转三次就行了。

2025-08-15 10:38:07 147

原创 hot100,数组:合并区间(一个return解决!)

先用sorted排序。再使用reduce进行归并,reduce第一个参数代表着初始数值。第二个参数就是具体函数,函数的第一个参数在最开始是初始数值,在之后就是你return的数值。第二个参数代表遍历到的当前元素。第三个参数也是一个函数,使用来解决并行流的合并的,这题目使用单线程,所以无所谓,我就直接返回null了。这道题目用stream流来解决就十分的优雅与高级,那么为什么可以用stream来解决呢。这道题目就说的很清晰了”合并“!而stream流对于合并有个专门的函数reduce()。

2025-08-14 14:07:38 156

原创 hot100数组:最大子数组和

/思路:每当遍历到一个元素时候,当前总和减掉最小前缀和就是当前最大子数组和。

2025-08-14 13:53:33 83

原创 hot100:字串,滑动窗口最大值

这道题目是需要用到单调队列,那么为什么要用到单调队列去解决呢?观察题目:窗口始终向右移动,那么就是先进先出,符合队列特性。再看:需要记录窗口每一次移动后其中的最大值。也就是需要找到最大值。那么就是说,在队列的基础上还需要能够快速找到其中的最大值,很明显就应当使用从头至尾的单调递减队列。好的,想明白这个,题目就简单了,我们只需要在每次移动窗口,保证单调队列的情况下,还得保证头部的索引是在窗口里面的就行了。i++){//开始移动窗口。

2025-08-13 10:39:52 106

原创 力扣hot100:字串:最小覆盖子串

这道题目,首先需要想清楚怎么样才能获得覆盖字串,首先初始左右指针形成一个窗口,然后移动右指针进行扩展。这时候已经找到了所有的所需要的字符了,那么就应该尝试缩小窗口,右指针需要动吗?显然右指针指向的地方才正好使得窗口含有所有的所需要字符,所以右指针不需要动,这时候应该左指针右移,右移到什么地步呢?是直到窗口含有所有的字符还是直到窗口已经不满足覆盖字串的要求呢?显然,需要找到下一个满足覆盖字串的窗口(也就是全新的左右指针),所以应当移动到正好窗口不满足覆盖字串这个要求。

2025-08-13 10:31:59 247

原创 造轮子之动态线程池

线程池调参还在重启服务?大三生做的这个轻量框架,动态调参+实时监控全搞定~-CSDN博客

2025-08-12 13:23:38 2271

原创 hot100 字串第一题:560. 和为 K 的子数组

首先明确,我们是统计每个位置前连续一段数组的和为k的数量。在当前位置,找到和为k的连续字串,那么一定需要存在和为sum-k的连续字串。此题目需要利用前缀和思想去解决。

2025-08-12 10:03:42 136

原创 hot100:滑动窗口第二题

这道题目是寻找字母异位词。要知道异位词,首先得知道题目让我找的词语是什么,所以需要用map记录一下。当我门在字符串中寻找异位词的时候,需要左右两个指针,右指针在扩展当中于map进行比对,一旦发现有多出map的词语了,就收缩,直到多出来的词语全都被消去了就继续进行扩展,那么什么时候才会找到异位词呢?当窗口长度跟原词语一样长,并且没有多出来的字母就算找到了。

2025-08-11 20:18:27 176

原创 hot100:滑动窗口第一题,3. 无重复字符的最长子串

这道题目是找到最长的不重复的字串。首先肯定是确定两个指针,用来确定字串的左右范围。那么,什么情况下能够保证不重复呢?那就是一旦碰到重复的就缩短字串直到不再含有重复的呗( ̄▽ ̄)",那么我们就有思路了,就是右指针用来扩展,等到右指针扩展到了含有重复字符的时候就用左指针来缩短就行了。

2025-08-11 09:39:59 141

原创 LinkedBlockingList的启发

2 改变队头节点可以少去出队获取尾锁来防止并发问题的发生。1 不要的节点可以显示写明,以帮助gc。

2025-08-10 21:00:53 273

原创 力扣hot100三数之和:双指针倒数第二题

这道题就是要想明白怎么才能够不重复的找到三元组-----------首先要保证三元组呈次序关系,其次就是三元组各自不能与上一轮相同。

2025-08-10 20:56:20 218

原创 力扣hot100,双指针最后一题42. 接雨水

当然了左右两边不一定等高,那么一定是选这两个最高的当中较低的一个地方。由此,就知道与水量应该怎么累加了,设置左右两个指针,并且记录着左右两边的最高的点,相对低的一边就与那边的指针位置的高度相减,再与总和累加,然后移动相对低的一边就行了。接雨水其实想清楚后会发现代码非常清晰,其本质是判断当前索引下应该用哪个索引的高度去减去当前的高度。

2025-08-09 23:18:19 194

原创 hot100双指针2:11. 盛最多水的容器

这道题作为中等题还是很有水分的,其实就是初始左右指针,范围持续向内缩小找最大值,那么为了值更大,肯定是移动短的一方。

2025-08-09 14:14:06 207

原创 hot100哈希3:128. 最长连续序列

/ 遍历输入数组nums,将每个数字存入map,并设置初始序列长度为1(每个数字自身视为长度为1的序列)// temp减1,继续向左检查下一个数字(例如,从i=3开始,检查2、1等)// 更新当前键i的值:i的原值加上temp-1的值(合并序列长度)// 创建一个HashMap,键为数字,值为该数字所在序列的长度(或标记值0表示已处理)// 如果当前键i的值是0,表示该数字已被处理过(属于其他序列),跳过本次循环。// 记录当前连续序列的长度,至少为1(当前元素本身)// 若存在,当前连续序列长度加1。

2025-08-08 11:12:14 311

原创 hot100 2 :49. 字母异位词分组

for(List<String> list : map.values()){ // 遍历映射中所有值(分组列表)List<List<String>> res = new ArrayList();for(String str:strs){ // 遍历每个输入字符串。

2025-08-08 09:23:04 173

原创 重刷hot100 经典两数之和!!

还记得一年前想要开始刷算法,结果因为第一题就不会,心态直接崩了。从那之后,几乎每天都不停,刷个一两道。今天从第一题开始重新刷,真是有感,坚持还是有回报的。想想当时,听到各种算法:单调栈、单调队列、二分法、回溯、动态规划。听到就头疼,每次用个集合都得问问ai有哪些常用的方法。这第一道题目还是很有意思的,真正掌握后,就会发现hash的妙用。// 找到解:返回补数索引和当前索引。// 检查补数是否存在于哈希表中。// 无解返回null(题目保证有解)// 计算当前元素所需的补数。// 将当前元素存入哈希表。

2025-08-07 21:00:22 189

原创 力扣200. 岛屿数量

岛屿问题,一种图的问题,首先要明白如何遍历。事实上与二叉树差不多,唯一不同的是图四面八方都有叉,并且各个节点之间是相互连接的那么在遍历的过程中就会碰到之前遍历过的地方被重复遍历,那么如何解决这个问题呢,只需要标记一下就行了,这个岛屿问题中就是将遍历过的土地‘1’都变成‘2’这样,每次发现是‘2’就跳过。

2025-08-07 17:12:25 101

原创 力扣124. 二叉树中的最大路径和

/返回最长单边路径。//右节点的最长单边路径。//左节点的最长单边路径。此题是间接找到答案,dfs的含义是单边最长路径,通过寻找单边最长路径的过程去找到最长的路径。dfs(root);//找到root为节点的最长单边路径。

2025-08-06 21:06:03 200

原创 从 0 到 1 设计动态线程池:我是如何实现 “参数无重启生效” 的

项目首页 - DynaGuardAutoPool-动态线程池 - GitCodehttps://gitcode.com/2401_82379797/DGA-Pool

2025-08-05 20:32:10 2301

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除