自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法随想录第18天

本题最直观的解法就是用层序遍历,找到最深层的最左边的节点元素。用递归的解法,核心思想就是寻找深度最大的叶子节点,且只在最大深度更新时更新结果值(这样就保证取到的是深度最深的最左边的节点元素)。同时,深度进行传参时,递归之后要进行回溯,以便进行同层另一颗子树的遍历。传入目标值,在遍历过程中做减去当前节点元素值的操作,可以不用额外构造一个求和的参数,当遍历至叶子节点时目标值减到0则代表该条路径满足条件。

2024-06-09 18:34:09 219

原创 算法随想第16天

判断一个二叉树是否为平衡二叉树,递归的判断条件是当遍历至某个节点时,首先该节点对应的两个子树需要满足平衡条件(左右子树之间高度不超过1),那么需要获取左右子树的高度,利用递归获取左右子树的高度是否为-1(因为左右子树其中一棵树为-1,那么两者之间的差值一定会超过1,即不满足平衡),然后判断两者之差是否大于1,大于1即返回-1,不大于1则返回两个子树中的最大高度(为了与节点对应的另一节点判断是否平衡)

2024-06-07 20:38:11 180

原创 不知道叫啥之刷题day15

为了标记这种某层存在空节点的情况,可以将空节点赋值一个固定的元素(因为本题的元素取值范围在-100至100之间,所以我选择赋值为101,当然也可以赋值为None之类的(这里的赋值是append进层结果集,不是在原二叉树上操作)),这样就能够处理这种结构不相等的情况了。实现思路就是对于当前节点判断它的两个子节点是否相同以外,还需要判断子节点所指向的下面四个节点是否对称(即左子树的左孩子与右子树的右孩子、左子树的右孩子与右子树的左孩子是否相等),然后根据递归法依次递归即可判断以根节点为中心的两边子树是否对称。

2024-06-05 21:26:56 340 1

原创 躺平day01

二叉树的定义 和链表是差不多的,相对于链表 ,二叉树的节点里多了一个指针, 有两个指针,指向左右孩子。

2024-06-04 22:37:29 781

原创 断更两天卷土重来day06

事先声明,断更两天并不是没有刷题,而是周三有组会,所以时间安排上比较紧张,基本上花俩小时刷题就没啥时间可以写博客了。(当然不排除偷懒的嫌疑)此刻由衷地佩服一直坚持写博客然后写的又好的大神们,而我的博客就像是一个树洞,把每天的知识kuangkuang往里倒,质量啥的就先不追求了吧,先把这个习惯养成再说。

2024-05-31 22:45:26 339

原创 想躺平又躺不平的day05

划重点:去重的逻辑主要考虑三个数的去重,保证三个元素对应的位置不会再次取到相同的元素(比如说第一个位置取了某个值n,双指针根据遍历条件得到符合条件的元素[a,b],那么第一个位置的数往后遍历则不能再取n了,会得到重复的结果),但是三个元素的值可以相同(来源于不同索引的相同值)。这样,就能保证同一索引的值不会取多次。根据上述三数之和的思想,四数之和即在三数之和的基础上再套一层循环:第一个数字遍历整个数组,第二个数字遍历从第一个数字取值的后一位到数组最后一位,然后剩下两个数字由左、右双指针进行判断。

2024-05-28 22:56:13 991

原创 想躺平又躺不平的day04

首先,定义一个长度为26的数组结构的哈希表,遍历第一个字符串,得到对应的哈希表,其中元素为这个字符串中每个字母出现的次数;由于小写字母的ASCII码是连续的,那么如果a作为数组第一个元素,以此类推某个字母与a字母的ASCII码差值即为数组索引,对应的数组元素为该字母出现的次数。本题有两个难点,一是计算该数字的每个位置上数字的平方和sum,二是该数字不为快乐数的判断条件。遍历一个数组得到集合或者字典类型的哈希表,再遍历另外一个数组,判断元素是否在哈希表内,在的话放入输出的集合中,并移除哈希表对应的元素;

2024-05-27 23:16:57 781 1

原创 想躺平又躺不平的day03

还需要注意的就是遍历条件的确定,由于我们是从虚拟头节点开始遍历,交换往后两个节点,也就是说当cur指向某个节点,它后面没有节点(链表节点数为偶数)或者只有一个节点(链表节点数为奇数)时则意味着遍历结束。【开始这道题的复盘之前,需要做足万全的心理准备,我在看卡哥视频讲解的时候,就觉得有一种深深的无力感,我觉得这种逻辑我自己完全没有独立思考出来的能力,而且可能遇到类似思想的题目极大可能还是做不出来。做到这儿,感觉链表的题目最重要的一点就是画图,能够清晰地知道算法过程,还有就是明确指针的初始化以及遍历条件。

2024-05-26 22:44:20 824 1

原创 想躺平又躺不平的day2

我自己在做的时候,完全没有想到说用双指针,反而想着加一个虚拟头节点,但是总是会报错提示none类型无法获取next指针,感觉是加上虚拟头节点之后遍历条件的问题导致。首先,需要明确知道的是链表的定义,如ListNode类定义那样,每一个节点包含两个属性:val(值)以及next(指向下一节点的指针)。一开始拿到这道题思路还是清晰的,删除当前节点等同于将上一节点指针指向下一节点,然后构造一个虚拟头节点指向头节点。但是,一敲代码人傻眼。增加节点即将改变上一节点的指针指向加入的节点以及加入节点的指针指向当前节点。

2024-05-26 05:14:03 614

原创 想躺平又躺不平的day1

我觉得自己还蛮喜欢总结一些东西的,但是仅限于一些于我而言不那么难的知识,刷算法题绝对不属于这种,本身刷题就已经很费脑了,刷完还要总结复盘就像是重新痛苦一遍。 但是,作为一颗卷心菜,可以菜但是必须卷起来,秉持着干不死就往死里干的精神,鼓起勇气开始了我的第一篇博客记录。 Today是训练营第二天,训练内容:数组章节给你一个按 非递减顺序 排序的整数数组 ,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 首先,拿到这道题,想到的最直接的解法就是遍历一遍求

2024-05-23 23:24:18 834

空空如也

空空如也

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

TA关注的人

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