自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 正则表达式

正则表达式(regular expression),简称为regex或regexp,是一种用于描述特定模式的表达式。可以匹配、查找、替换文本中与该模式匹配的内容,应用于各种文本匹配和处理的场景中。(JS常用)

2025-04-16 17:03:01 434

原创 JC链客云

嘿嘿嘿,说说我的项目吧,二十一年倾心大制作,原型《动力云客》。敬请期待。这里会更新一些我心学到的知识点,还有我自己的一些改进。

2025-04-10 11:36:31 840

原创 Leetcode——239. 滑动窗口最大值

不愧是困难的题,确实想不出来。但是掌握单调队列这个解题思路,以及getLast()方法,还有removeLast()方法。

2025-04-04 19:09:18 363

原创 Leetcode——150. 逆波兰表达式求值

这道题第一次没想到这个做法,因为与上一道题隔了一段时间去做,第一反应是把所有数组元素全部压进栈中,然后进行运算,反正思路很奇怪,因为在运算过程中可能会出现连消的效果(像那个祖玛一样),和中邪了一样疯狂想用递归求出结果哈哈哈int a = 0;int b = 0;try {if (!return;if (!} else {

2025-04-04 15:26:00 273

原创 Leetcode——1047. 删除字符串中的所有相邻重复项

第一点就是要在peek()之前检查栈内是否还有元素,空栈进行peek()操作会报错。不知道stack怎么返回字符串,以为会有什么方法,结果就是一个简单的遍历。进行遍历时,要注意栈先进后出的机制,注意不要将字符串反转。

2025-03-25 12:57:08 240

原创 Leetcod——232. 用栈实现队列、225. 用队列实现栈

这个没啥好说的。就是对行为的模拟,非常适合用来熟悉一下栈和队列的基本操作。

2025-03-25 11:10:53 178

原创 Leetcode——128. 最长连续序列

在这道题里最难想的是在遍历的时候寻找子序列的起始元素ps:写到这里感觉可以简化一下,把统计之后的元素删除,因为有可能这些元素还没有在外循环被遍历过,重复计算时间复杂度会高,但是不知道set的remove方法复杂度怎么样。验证了一下上面的方法,删除元素会导致外循环无法正常遍历,可能需要用iterator()进行循环。

2025-03-25 11:09:03 206

原创 Leetcode——28. 找出字符串中第一个匹配项的下标

时间复杂度O(mn),空间复杂福挺简单的,没啥要总结的。时间复杂度O(m+n),KMP算法太强了,有时间我一定要专门开个帖子讲讲我对KMP的理解。(开个超级大坑)KMP简直太神了,巧夺天工。ps:第一次知道if后面还要+空格(标准化)。

2025-03-19 15:23:39 254

原创 卡码网——55. 右旋字符串

代码随想录》后面还有个题解,不知道是不是比我这个更节省空间和时间。(个人认为,这个还需要开辟字符数组,是不是空间消耗更大啊)// 版本一//获取字符串长度//反转整个字符串//反转前一段字符串,此时的字符串首尾尾是0,n - 1//反转后一段字符串,此时的字符串首尾尾是n,len - 1//异或法反转字符串,参照题目 344.反转字符串的解释start++;end--;// 版本二//获取字符串长度。

2025-03-18 15:40:11 141

原创 卡码网——替换数字

这里不是应用在多线程,其实应该使用StringBuilder类型,提高效率。

2025-03-18 14:46:44 179

原创 Leetcode——151.反转字符串中的单词

对字符串还是不够熟练,有好多方法在用的时候想不起来用到很多String的内置函数,非常简洁。最后这种题解,只需新建一个新的StringBuilder类型对象,然后在该StringBuilder进行修改,不需要额外开辟数组或集合,空间复杂度低。就是太复杂了!!学习过后复现都很难!!!

2025-03-17 18:00:40 369

原创 Leetcode——541. 反转字符串 I

新学习了一个StringBuffer类型,相比String来说,具有可操作(增删改和反转),多线程安全的特性。巩固了String对象的substring()方法(这里的string居然是小写),区间是大于等于a,小于b(例如s.substring(a,b))。这种替换方法,上一篇还没觉得多好用,这一篇直接就体现出来了,第六行的比较也可以用三元运算符,交换的部分也可以额外写一个函数替代。

2025-03-14 16:00:46 266

原创 LeetCode——344. 反转字符串

这道题也很简单只需要循环到字符数组的一半,然后将前后对应数组元素做交换就可以了。

2025-03-13 09:16:59 176

原创 LeetCode——18.四数之和

剪枝还不是很熟练,我第一次做的时候直接把剪枝步骤去掉了。

2025-03-13 08:50:33 194

原创 LeetCode——15.三数之和

看见这道题放在哈希了,就用了哈希,被狠狠的骗了。给我的警示就是,以后看到新题,一定要有独立思考,要思考有没有什么东西适合做这道题的哈希,再进行判断。

2025-03-12 10:46:00 422

原创 LeetCode——383. 赎金信

代码随想录里面的题解是将两个字符串.toCharArray()转为字符数组,我用的是.charAt()直接遍历,第一个方法需要消耗额外空间,第二个方法需要有更大的开销,各有利弊吧算是(但是我觉得我的好一点)就是直接两层for循环直接遍历,这里面有一个.erase()函数对赎金信进行删除,最后判断ransomNote中还有没有元素。(想到了eraser,所以直接记住了这个erase函数)

2025-03-07 18:16:00 249

原创 LeetCode——9. 回文数

这里面这个把数字转为字符数组的操作,不太熟练(根本不会)还是临时找的哈哈哈哈,学到了。记得之前看题解三说过,完全倒序输出可能会溢出,建议inverted的定义用long。这个思路真是太无敌了,我只有膜拜的份。

2025-03-06 20:33:24 383

原创 LeetCode——454. 四数相加 II

在这道题中学会了新的map方法——getOrDefault可以通过这个方法寻找map中有没有对应的键,如果没有则返回调用时提供的defaultValue,省去了很多步骤,不使用这个函数的话,可能要进行if判断+put添加。put添加,如果原map中没有该键,则会添加并返回null;如果有,则会对原有的键值对进行覆盖,并返回原来map中的值。

2025-03-06 19:02:21 180

原创 LeetCode——1. 两数之和

学习了新的数据结构HashMap,和Python的字典一样(好像底层就是map)

2025-03-06 11:32:57 151

原创 LeetCode——283. 移动零

这道题实在leetcode热题100进去的,因为有分类,所以还是比较清晰的,直接用了双指针,先遍历慢指针(快慢同时+1),找到一个为0的数,就单独让快指针自增,快指针找到一个不为0的就继续进行交换,到最后是快指针遍历到数组末尾,证明从慢指针开始到快指针全部为0,函数就结束了。

2025-03-06 09:58:36 214

原创 LeetCode——202. 快乐数

看了一下题目主要还是检测集合中有没有某个数存在。简单算了一下,n的范围是2^31-1,10位数,假设每位都为9,第一次算出的平方和最大810,故设置了一个1000的数组做哈希表。外层循环判断算出的平方和是不是存在过的,若存在过,即进入无限循环,即不为快乐数。内层循环求平方和。

2025-03-04 13:11:53 152

原创 LeetCode——349. 两个数组的交集

通过上一期的学习,发现这里的nums数组的取值是有范围的,所以可以使用数组做哈希表,在第一个循环用一个集合(因为不定长)进行存储,第二个循环进行比对,查看在集合中有没有数组2中的元素存在。最后重新建一个数组存储集合中的元素。

2025-03-04 11:01:40 157

原创 LeetCode——242. 有效的字母异位词

今天开始学习 新的数据结构——哈希表了,由于对哈希表不太了解,第一道题就直接看题解了,看到一看了解到有暴力解法,先尝试了一下,结果连暴力解法都不会...想了半天,查了好多String的函数(因为学习String的时候,在学校就已经开摆了,所以String相关的方法不太熟练),大体思路是,双层循环,检测到s中的某一位和t中的某一位相同时,就对t进行remove,但是删除过后的j的取值范围没变化,可能会导致j超出t的长度。关于双层循环,问了DeepSeek。

2025-02-27 19:45:34 296

原创 LeetCode——142. 环形链表 II 思路以及思考过程

这题是真的难想,我最开始的思路是给每个链表节点做一个标记,但是不可以修改链表所以作罢,没有其他的思路了,这个题解的思路真的太牛了。

2025-02-27 13:59:04 366

原创 LeetCode——面试题02.07. 链表相交 思路以及思考过程

这个题真是绞尽脑汁也一点思路没有,我一直在纠结,怎么遍历,然后比对出A和B相同节点,最终无果,看了解析,太巧妙了,先把两个链表右侧对齐,因为就算是相交,也是最后几个节点相同,所以调整稍长的那个链表,左侧长出的部分可以直接不看了,然后直接右侧一一(yiyi)比对就可以了(这个一一比对也太一一了)。我的理解是将两个链表分别变为前A后B和前B后A的等长链表,如果有相交的地方,必会在末尾同步出现相同的结点,省去了两个链表的计数和取齐的步骤。1.最开始没想到右侧对齐,也没有仔细理解题目的意思,以为可能会有X型结构。

2025-02-26 17:30:42 112

原创 新的学习计划

最近没在学JavaSE了,感觉欠课欠了很多,学不完了,直接着手写项目,写到遇到不会的东西直接问AI了,干中学。希望能取得比较不错的成果吧,加油。

2025-02-25 15:35:33 227

原创 LeetCode——19. 删除链表的倒数第 N 个结点 思路以及思考过程

这个题我的解题思路也很简单,第一次遍历链表并且计数,第二次遍历链表找到对应的结点然后删除,过程中遇见了一个特殊情况——删除的如果是头结点,就写不出来返回值了,所以就用了虚拟头结点,以及针对只有一个结点的链表做了单独处理。但是看了代码随想录的解析,确实是个好办法,相当于是一个定长的滑动窗口吧(怎么理解应该都可以),所以在快指针移动到末尾时,慢指针即会自动指向倒数第n个结点。力扣题目里有“进阶:只用一次遍历解决”,令我非常好奇。

2025-02-25 15:32:37 326

原创 LeetCode——24. 两两交换链表中的节点 思路以及思考过程

需要注意的问题是while循环里的两个判断条件顺序不能写反,不然会报错(因为程序是从前往后执行,如果反过来写,有可能cur.next已经为空了,再调用cur.next.next就会报错,先判断cur.next的话,判断式为false直接就退出了,就不会报错)这个题也算比较简单,我刚开始遇到的难题是调换之后头节点跑到第二个节点的位置了。(这都没想起来找个虚拟头节点)感觉主要还是对过程的模拟,如果有节点找不到,新建个变量储存一下就OK。看了眼答案,用了下虚拟头节点,迎刃而解了。

2025-01-21 17:16:29 199

原创 LeetCode——206. 反转链表 思路以及思考过程

这个题还算比较简单(但是我刚开始也没想通),我最开始的想法,是从链表最后一个结点开始,把next全部之前前面的结点,但是遍历到最后,就无法反向遍历了(不知道双向链表能不能做到)。看了一眼题解,发现需要用两个变量存储前一个结点和后一个结点(算上遍历变量一共3个)。注意遍历结束时的位置,是应该返回cur还是curPrev还是curNext。curNext初始值不能设置为cur.next,因为不知道头结点是否为空。循环中的赋值注意先后顺序。

2025-01-21 15:36:05 219

原创 LeetCode——707. 设计链表 思路以及思考过程

这道题里我觉得最容易遗忘的就是在增删节点时,size这个链表长度变量也需要跟着增减;然后就是几个if分支里的return是否有写的必要;还有就是在有关index的函数时,不知道是不是我的经验太浅薄了,每次写都需要画个图确认一下,判断语句是<还是<=。

2025-01-18 13:47:04 634

原创 LeetCode——203. 移除链表元素 思路以及思考过程

在学校学习期间,链表的学习被我忽略了,从今天开始从0学习。

2025-01-17 15:45:27 458

原创 JavaSE一些知识点(很杂)(不全,以我不会的为主)(主要是自用)

一些知识点

2025-01-03 07:20:25 129

原创 IDEA快捷键(持续更新中)

时不时更新一下新学到的IDEA快捷键

2025-01-03 07:19:24 288

原创 LeetCode——59.螺旋矩阵II 思路以及思考过程

这道题做了好几次,上次刷这道题还是用C++写的,虽然说用Java也没差。

2025-01-01 21:27:28 268

原创 打开博客新世界的感悟

决定在每天学习时间之后的21点钟准时开启我的博客编辑,话说好激动,一直期待9点的到来,可能是把写博客当成我这一天唯一的放松了吧。

2025-01-01 21:00:19 94

原创 软件工程期末知识点梳理

软件工程期末知识点梳理

2025-01-01 12:03:56 109

原创 我的第一篇博客——勉励自己

目前在学习JavaSE部分,是在跟着b站的动力节点老师(无广)的Java基础的视频学习的,主要是之前看了老师的Java知识框架,觉得比较清晰,计划在1月中旬看完他的Java基础课程。(本来第一次编辑到这里都要放弃了,因为是除了B站以外第一次发布自己的文章,再加上从小就没有写日记的习惯,实在不知道写一些什么,担心没能给大家输出一些优质的内容,但是在这里搜了下关键字“女朋友”,感觉大家写的还是挺杂的,所以我就安慰自己,实在不行我就当做自己的学习笔记来写了。所以这个假期要狠狠地恶补了。

2024-12-31 15:36:41 911

空空如也

空空如也

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

TA关注的人

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