自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode[617]合并二叉树

我们合并左右子树,在递归左右子树的时候,一定要保证左右子树不为空,如果左子树为空,那么直接返回右子树就行了,即使右子树为空。如果右子树为空那么直接返回左子树就行了,这样判断完就正常递归就行了。

2025-07-02 22:55:55 213

原创 LeetCode[654]最大二叉树

这道题我感觉相比于根据中序和后序遍历构造二叉树简单的多,先找到最大值,然后左右子树就能分开了,没啥难度。

2025-06-14 16:18:57 139

原创 LeetCode[106]从中序和后序遍历序列构造二叉树

我觉得这种题还是要找好边界,这道题和从中序和前序遍历序列构造二叉树差不多,就是后序遍历和前序遍历是反着来的,后序遍历最后一个是头节点,然后递归时中序遍历的处理逻辑没什么变化,唯一有变化的是后序遍历的递归逻辑,在后序遍历中确认左子树和右子树的范围,左子树范围是头节点---头节点+左子树长度-1,右子树范围头节点+左子树长度---尾节点-1。

2025-06-14 15:37:51 278

原创 LeetCode[513]找树左下角的值

找树左下角的值,有可能这个值不是左叶子节点,可能是右叶子节点,但怎么说这个值都是叶子节点,首先这道题用层序遍历的思路比如什么队列和BSF的递归都可以做,但我比较喜欢用纯递归来搞,因为这道题不需要处理根节点,所以前中后序遍历都可以,我们只要模拟层数,然后找到叶子节点即可。

2025-06-04 21:12:37 379

原创 LeetCode[404]左叶子之和

题目要求求出左叶子的和,左叶子的条件是左右节点为空且是左子树的叶子节点才叫左叶子节点,那么右子树的左叶子节点的和是什么呢?这样想就引出了递归的顺序,后序遍历,求出左右子树的节点和,再算根节点。遍历时加上条件,如果是左叶子节点就算在根节点头上,因为这时候根节点这棵树的和就是左叶子的和了。

2025-06-03 21:38:14 423

原创 LeetCode[257]二叉树的所有路径

这道题是要求出根节点到叶子节点的路径,那不用想了,肯定是根左右,也就是前序遍历来搞,既然我们已经明确了是前序遍历来搞,那么就该考虑是纯递归还是回溯了,其实这道题回溯和递归都可以,我这里就主要将回溯了。回溯首先就要明确退出递归的条件是什么,肯定是左右子节点都为空,这就是叶子节点的情况,我们可以直接计算结果添加到结果集中,然后递归左右子树,递归之后做回溯,就是这么简单,递归和回溯是同时进行的。

2025-05-31 18:44:36 351

原创 LeetCode[110]平衡二叉树

本题解法依旧是后序遍历,采用左右根来解决,如果你要采用前序遍历什么的,你需要先计算根节点,那根节点的计算又要计算子节点,然后再递归左右,这样子节点就会被重复计算,对时间复杂度来说不太友好,属于O(nlog(n))时间复杂度。但采用后序遍历就不一样了,只需要把每个节点都遍历一下就能得出答案,所以时间复杂度为O(n), 高下立判。

2025-05-31 15:33:39 324

原创 LeetCode[222]完全二叉树的节点个数

完全二叉树的性质是:我简单说一下,大概就是其他节点都满了,就是只缺右面的叶子节点,右面叶子节点缺多少都行,只要不是左面少节点就行。这个节点个数可以使用递归左儿子个数+递归右儿子个数+1,这个1是根节点,最后结果为节点个数,但我们没有练习到完全二叉树的性质.知道了这个性质,就直到完全二叉树是由满二叉树组成的,那么我们直接求满二叉树的节点就行,满二叉树的节点数量为depth*2-1。

2025-05-22 21:33:43 389

原创 LeetCode[111]二叉树的最小深度

这道题中最小深度和最大深度可不一样,最大深度定义就是求最大深度,而最小深度的定义是找到最近叶子节点的最小深度,也就是说如果左右节点有一个为空,那么这个空节点并不能算作一个叶子节点。所以我们要将这种情况排除,那么答案就物质欲出了。

2025-05-22 21:02:33 149

原创 LeetCode[104]二叉树的最大深度

二叉树的最大深度是算左右节点哪个深度最大,dfs直到最深处,递归时也要把当前节点算上,一个节点的树深度是1,别忘记了。

2025-05-12 23:03:13 133

原创 LeetCode[101]对称二叉树

对称二叉树是左右子树对称,而不是左右子树相等,所以假设一个树只有3个节点,那么判断这个数是否是对称二叉树,肯定是先判断左右两个树,然后再看根节点,这样递归顺序我们就确认了,是后序遍历。那么根据遍历顺序,我们可写出递归函数,递归函数的中止和放行条件就是第二步了,这一步可以看代码。

2025-05-12 22:52:35 377

原创 LeetCode[226] 翻转二叉树

使用递归,归根结底还是左右节点互相倒,那么肯定需要一个temp节点在中间传递,最后就是递归,没什么说的。

2025-05-08 20:17:28 296

原创 LeetCode[102]二叉树的层序遍历

我使用java来做的,结果集是两个List集合,那么我们是不是应该每到新的一层就给这个结果集添加一个内部的List,那么怎么判断左右节点在同一层级呢?我想的就是模拟一个层级的参数为k,root的左右节点都属于一个层级,那么递归的时候对应的就是k+1;以此类推,拿到结果。题目描述从左到右一层一层的进行遍历,就遍历二叉树的这种题我更喜欢用递归来做,

2025-05-02 16:07:35 341

原创 LeetCode[145]二叉树的后序遍历

二叉树的后序遍历顺序是:左右根。

2025-05-02 15:46:10 202

原创 LeetCode[94]二叉树的中序遍历

二叉树中序遍历是左根右,递归先左节点,再根节点,再右节点。

2025-05-02 15:42:45 130

原创 LeetCode[144]二叉树的前序遍历

前序遍历是根左右,递归遍历的时候,先添加根部,再递归左,再递归右。

2025-05-02 15:36:52 129

原创 LeetCode[347]前K个高频元素

使用小顶堆,最小的元素都出去了,省的就是大,高频的元素了,所以要维护一个小顶堆,使用map存元素高频变化,map存堆里,然后输出堆的东西就行了。

2025-04-29 21:39:28 396

原创 LeetCode[150]逆波兰表达式求值

这道题我做的太蠢了,我还多余用了一共方法来判断是不是数字,我的天啊,最后才发现只要判断是不是加减乘除就完了,判断是不是数字干嘛?

2025-04-27 21:40:56 353

原创 LeetCode[1047]删除字符串中的所有相邻重复项

没啥思路,直接暴力循环,都塞到栈里,然后一次性操作,结束。

2025-04-27 20:16:03 160

原创 LeetCode[225]用队列实现栈

题目中说可以给我们两个队列来实现,但其实一个队列就可以实现了,poll的时候就是栈头,也就是队尾元素,那么我们如何获得队尾元素,我们直接让队尾前面的元素重新入队不就完了嘛!找栈顶元素和找队尾元素是一样的,一样的操作。

2025-04-20 14:46:20 315

原创 LeetCode[232]用栈实现队列

一道很简单的题,就是栈是先进后出,队列是先进先出,用两个栈底相互对着,这样一个队列就产生了,右栈为空的情况,左栈栈底就是队首元素,所以我们需要将左栈全部压入右栈,右栈不为空,那么右栈就是之前压入过,这时右栈栈顶元素就是队首元素,大家画画图应该就明白了。

2025-04-20 13:42:49 294

原创 LeetCode[459]重复的子字符串(KMP解法)

最近迷上了KMP算法,所以这道题也是来搞一下KMP算法,总所周知KMP是需要维护一个前缀表,KMP算法不是比较一个字符串包不包含另一个字符串的吗,这个重复字符串的题也能用?前缀表的最后一个位置就是当前字符串的最长前后缀,如果字符串是由重复字符串构成的,那么字符串长度减去最长前后缀的长度,即剩余子串的长度,如果总长度%子串长度等于0,那么这就是重复的子字符串。我模拟的前缀表就是从0开始的,没有什么右移, -1啊什么的,就是普普通通的前缀表。前缀:不包含后缀的字符串。后缀:不包含前缀的字符串。

2025-04-19 23:14:38 385

原创 LeetCode[28]找出字符串中第一个匹配项的下标(KMP版本)

因为这个前缀表是维护了当前模式串最长前后缀,一旦出现不相等的情况,就可以根据不相等的位置的前一个位置的下标的值,就是需要回退的次数。我的理解就是先想KMP算法的时间复杂度,是O(n+m),那么就是一个串遍历一遍,给出的文本串遍历一遍,给出的模式串遍历一遍,所以通过时间复杂度就知道这道题大概的一个for循环的方向,肯定是先遍历模式串算出前缀表,然后再遍历文本串结合前缀表得出答案。那么说说前缀表怎么算出来的,遍历模式串,然后再来个双指针,初始的时候,头指针指向前缀的头部,尾指针指向后缀的尾部。

2025-04-16 23:47:28 402

原创 LeetCode[541]反转字符串Ⅱ

第一就是大于等于k就反转k个,我们for循环肯定是i+=2k了,接下来就是判断是否大于等于k,大于等于就反转,头是i, 尾是i+k。题目给我们加了几个规则,剩余长度小于2k,大于等于k就反转k个,小于k就全部反转,我们按照这个逻辑来就行。第二就是小于k,我们就直接头是i,尾是长度-1。

2025-04-14 22:26:15 311

原创 LeetCode[18]四数之和

做四数之和之前,我还真没想到能用三数之和来做,这三数之和真是白做了。0.0,四数也就是比三数多一个数而已,这个数再用for循环了便是,剩下的还是和三数之和一样,就剪枝也是和三数之和差不多,唯一区别就是这个不是四数相加等于0,而是四数相加等于一个target,第一个数比target大,这个显然行不通,因为第一个数可能是负数,比如-4,-1,0,0,-5,target=-5,那么第一个数明明可以,但却被我们剪掉了,这是不可以的,所以我们必须保证第一个数为正数的时候再和target进行比较。

2025-04-14 21:50:22 314

原创 LeetCode[15]三数之和

相等添加到结果集后,我们头尾指针都要向内部移动一位吧,那么当尾指针和尾指针的前一个指针一样,那么就要给尾指针去重,头指针同理如果和头指针的后一位一样,那么头指针一样要去重,这样我们三个指针都去重过,我们的答案也就毋庸置疑了。首先一个节点来进行数组的遍历,这个节点也相当于三数之和的第一个值,两个指针分别代表另外两个值,left指针和right指针就肯定在第一个值后面的数组中遍历了,具体怎么遍历呢,就是一个在新数组的头遍历,一个在尾部遍历。这样头尾指针移动就出来结果了,但是这个结果准确吗?

2025-04-01 23:30:05 334

原创 LeetCode[383]赎金信

太简单了,没啥思路,就是暴力使用哈希表,遍历第二个数组记录都有几个值,再遍历第一个数组,相同值对应的数就减去,如果最后数组有负数,那么就gg了,如果没负数就ok。

2025-04-01 22:19:07 312

原创 LeetCode[344]反转字符串

思路就是没啥思路,直接秒了,搞个双指针,异或可以解,但是代码不太好理解,我就写个简单的代码吧。

2025-03-21 18:02:56 149

原创 LeetCode[454]四数相加Ⅱ

可以,我第一次尝试把四次方简化成二次方,但是我们一共四个数组,怎么简化成二次方,那我们就把四个数组看成两个数组,这样我们就可以使用二次方进行求解了,每两个数组进行一次n方。这道题也是一道哈希题,我们面对哈希题就可以使用数组,set和map,因为我们需要统计有几个原组和前两个数组的和,所以我们使用map来搞。后两个数组使用n方进行和的相加,如果我们想结果=0,那么前两个数组和后两个数组的和一定是相反数,如果相加=0了,那么我们就将一开始存的value相加到结果中就行了。

2025-03-21 17:36:34 304

原创 LeetCode两数之和

这种题就是哈希题,可以使用哈希来解决,哈希就可以分为数组,set和map,因为我们这到底要记录数组下标和下标对应的数,所以我们需要选择map来解决,我们遍历这个数组,每遍历到一个数都和target减一下,减之后的这个值我们设置为balance,如果这个map中有这个balance,我们就可以返回当前的下标和map中对应数字的下标。如果map中没有这个balance,那就把当前数字和下标存入map中就可以了,直到找到两数之和。

2025-03-21 17:27:51 296

原创 LeetCode[349]两个数组的交集

一字:暴力 QAQ,就俩set,两个数组往里扔,然后俩set一个retainAll, 然后再把set转换成int数组,使用stream看着好看点。

2025-03-20 20:43:47 125 1

原创 LeetCode[242]有效的字母异位词

因为这道题都是字母,范围比较小, 我就使用数组来操作了,26个字母,数组长度26,遍历字符串的每个字母,让它减去char的a,这就是数组下标,你要问为什么?那就是因为s.charAt(i)如果是a,那么减去a就是0,如果是b减去a就是1。遇到这种字母异位啊,比较字符串啊,就可以想到数组比较,或者set啊,map啊,都可以。

2025-03-20 20:24:48 262 2

原创 LeetCode[02.07]链表相交

说实话,一开始我没想出来为什么O(n+m)能遍历出结果,然后我看了解析,我的理解就是A链表跑完就去跑B链表,B链表跑完就去跑A链表,那总长度是一样的,跑完一圈还没有一样的,那就是不相交。那为什么跑完一圈会有一样的case呢?因为两个链表相交部分长度相同,不相交部分长度不同,两个链表相互跑就会形成一种快慢指针的感觉,这样就会导致出现相同节点的情况。

2025-03-18 23:06:37 232

原创 LeetCode[19]删除链表的倒数第N个节点

要想一次循环,一趟遍历完,那肯定是要想到双指针了,但是双指针怎么做呢?题目给出删除倒数第N个,我们如果能找到倒数第N个节点的前一个节点就行了,倒数第N个肯定是倒着数,那我们就让两个指针中间就差N个单位,当快指针走到链表最后一个的下一个null节点时,这时候慢指针就是倒数第N个节点的前一个节点了,因为快慢指针始终相差N个节点。

2025-03-17 21:46:41 255

原创 LeetCode[24]两两交换链表中的节点

就对于这种头节点发生变化的, 我觉得一般都需要一个虚拟头节点,然后无非就是让虚拟头节点的后两个节点进行交换,即找到要交换的两个节点的前一个节点,然后每次循环的时候都要记住这点,这道题就很简单了。

2025-03-17 20:53:55 318

原创 LeetCode[206]反转链表

这种题一开始我老想着用三个节点来搞,最后发现可以先两个节点试试,然后不行再三个节点,(但还是用三个节点QAQ),要反转链表肯定要搞个虚拟头节点,但是虚拟头节点还不能有数,那就设置虚拟头节点为null就行,然后剩下就是3个节点互相倒,没啥难度。

2025-03-17 20:36:59 307

原创 LeetCode[59]螺旋矩阵Ⅱ

第一个大循环先遍历圈数,一共遍历n/2圈,如果是奇数那就最后处理中间那个小点就行,然后是在每一圈有四条边,我们对每一条边进行处理,每条边采用左闭右开的区间,每条边的最后一个点交给下一条边来进行处理,这样代码就不会乱了。这种题我第一次确实没做出来,第一次做的时候一圈一圈处理,发现圈数越往里,越乱,原来之前是没从圈数开始遍历。

2025-03-17 20:25:57 308

原创 LeetCode[707]设计链表

一道中等难度的设计链表题, 一开始我给题想复杂了,我自己设计个双端链表,给我弄的有点迷糊,最后简化成单向链表来做,且只需要一个虚拟头节点即可,主要就是考虑好边界问题,在用下标来操作节点的时候都要拿到操作节点的前一个节点,这样才能操作。

2025-03-15 23:58:25 162

原创 LeetCode[203]移除链表元素

我是设置一个虚拟头节点,再设置一个用来遍历的节点,如果当前遍历的节点值和target一样,就让当前节点向下跳两个位置,如果不一样,就让当前节点走一步,设置虚拟头节点就是能省去一步判空操作。

2025-03-15 19:30:59 272

原创 LeetCode[209]长度最小的子数组

主要思路就是搞一个滑动窗口,如果滑动窗口中的和大于了target,那么就让滑动窗口的头部往前走一步,如果等于target就更新数组长度,如果小于target就更新滑动窗口末尾,这样就能使用nlog(n)的时间复杂度来解决这道题。老套路,我发现了,最近做的数组题,做不出来可以想一下双指针,如果这道题暴力遍历的话肯定很慢了,但是如果使用双指针维持一个滑动窗口的话,就会快很多。

2025-03-15 17:41:48 154

SwitchHosts-installer -x64-4.1.0.6076.exe

下载自取

2023-06-05

html课设之零食售卖网站

内部含js jquery html css 轮播 适合有一定基础的人看

2022-12-05

html实现一个五星级酒店的展示网站

内部由html,css,js,jquery,轮播构成,如果你需要这个资源的话,可以给我点个关注吗,你的关注是对我最大的支持

2022-11-20

html实现一个酒店管理平台(web课设源码+报告)

内部有html,css,js,jquery 如果这个项目对你有帮助,请给我一个关注吧!!!不要白嫖我哦!!! 求一个三连 谢谢啦!这是对我最大的帮助

2022-11-17

html实现一个酒店管理系统

内部包含html,css,javaScript,jQuery,轮播,滚动图片,如果你需要这个代码,请一定给博主关注和三连其他文章,不要白嫖我哦!!! 这是对我最大的帮助

2022-11-17

html实习一个农产品销售网站设计与开发

内部包含html,css,javaScript,jQuery,轮播,滚动图片,如果你需要这个代码,请一定给博主关注和三连其他文章,不要白嫖我哦!!! 这是对我最大的帮助

2022-11-17

Html+css+js装饰装修设计-html之web课设

包含jquery,html,css,javaScript,下拉和轮播 内容为博主当年写的web课设,如果有需要的同学请放心拿走, 但是希望你们在拿走前能给我一个关注加三连,不要白嫖我哦!!!

2022-11-15

Html来实现一个花店卖花的页面

此为博主练习项目,内部有html,css+少量js代码 如果这个项目对你有帮助,请给我一个关注吧!!!不要白嫖我哦!!! 求一个三连 谢谢啦!

2022-11-15

Hmtl实现一个化妆品的商城浏览效果

此为博主的html练习项目,其内只使用html+css来实现,无js及其他 如果你需要此项目来借鉴,不如用你的小手点个关注,并且三连我,不要白嫖我哦!!!

2022-11-15

空空如也

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

TA关注的人

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