自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 刷题记录day12|102.二叉树的层序遍历、226.翻转二叉树 (优先掌握递归)、101. 对称二叉树 (优先掌握递归)

每次提取两个结点并比较它们的值(队列中每两个连续的结点应该是相等的,而且它们的子树互为镜像),然后将两个结点的左右子结点按相反的顺序插入队列中。注意上面最后一种情况,我没有使用else,而是else if, 因为我们把以上情况都排除之后,剩下的就是 左右节点都不为空,且数值相同的情况。因为我们要比较的是根节点的两个子树是否是相互翻转的,进而判断这个树是不是对称树,所以要比较的是两个树,参数自然也是左子树节点和右子树节点。此时才进入单层递归的逻辑,单层递归的逻辑就是处理 左右节点都不为空,且数值相同的情况。

2023-11-17 19:02:46 39

原创 刷题记录day11|递归和迭代遍历:144.二叉树的前序遍历、94.二叉树的中序遍历、145.二叉树的后序遍历

写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。分析一下为什么刚刚写的前序遍历的代码,不能和中序遍历通用呢,因为前序遍历的顺序是中左右,先访问的元素是中间节点,要处理的元素也是中间节点,所以刚刚才能写出相对简洁的代码,确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。

2023-11-12 19:27:14 224

原创 刷题记录day10| 239. 滑动窗口最大值、347.前 K 个高频元素 、总结

栈里面的元素在内存中是连续分布的么?陷阱1:栈是容器适配器,底层容器使用不同的容器,导致栈内数据在内存中不一定是连续分布的。陷阱2:缺省情况下,默认底层容器是deque,那么deque在内存中的数据分布是什么样的呢?答案是:不连续的,下文也会提到deque。

2023-11-10 14:49:35 35 1

原创 刷题记录day9| 20. 有效的括号 、1047. 删除字符串中的所有相邻重复项 、150. 逆波兰表达式求值

相对简单,首先将元素入栈,之后看要入栈元素跟栈顶元素是否相等,相等就不入栈,并删除栈顶元素,注意要检查栈不为空。在项目比较大的时候,由于参数多,全局变量等等,使用递归很容易判断不充分return的条件,非常容易无限递归(或者递归层级过深),第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号return false。,然后递归返回的时候,从栈顶弹出上一次递归的各项参数,所以这就是递归为什么可以返回上一层位置的原因。在完成所有重复项删除操作后返回最终的字符串。

2023-11-07 16:40:00 33

原创 刷题记录day8|栈与队列、232.用栈实现队列 、 225. 用队列实现栈

HP STL 其他版本的C++ STL,一般是以HP STL为蓝本实现出来的,HP STL是C++ STL的第一个实现版本,而且开放源代码。从下图中可以看出,栈的内部结构,栈的底层实现可以是vector,deque,list 都是可以的, 主要就是数组和链表的底层实现。C++标准库是有多个版本的,要知道我们使用的STL是哪个版本,才能知道对应的栈和队列的实现原理。接下来介绍的栈和队列也是SGI STL里面的数据结构, 知道了使用版本,才知道对应的底层实现。我们都知道,栈是先进后出,队列是先进先出的。

2023-11-06 16:48:09 136

原创 刷题记录day7|344.反转字符串、541.反转字符串II、剑指Offer 05.替换空格 、151.翻转字符串里的单词 、剑指Offer58-II.左旋转字符串

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。我们将整个字符串都反转过来,那么单词的顺序指定是倒序了,只不过单词本身也倒序了,那么再把单词反转一下,单词不就正过来了。而且空间复杂度为O(1),时间复杂度为O(n),因为reverse函数的时间复杂度是O(n)请实现一个函数,把字符串 s 中的每个空格替换成"%20"。

2023-11-04 15:56:35 346 1

原创 刷题记录day6|454.四数相加|| 、383.赎金信 、15.三数之和、 18.四数之和

两层for循环就可以确定 a 和b 的数值了,可以使用哈希法来确定 0-(a+b) 是否在 数组里出现过,其实这个思路是正确的,但是我们有一个非常棘手的问题,就是题目中说的不可以包含重复的三元组。就返回了,因为 0 已经是确定的数了,四数之和这道题目 target是任意值。然后固定一个元素,双指针首尾遍历两个元素,调整大小,大了右 指针--,小了左指针就++。注意:这里要去重,那就是如果前一个前后两个元素相同,那就跳过。注意:不能先去重再进行操作,比如-1,-1,2这种就会被漏掉。,请你计算有多少个元组。

2023-11-02 13:27:49 113 1

原创 刷题记录day5|242. 有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

首先将nums1元素插入到哈希表中,然后对去重后的nums2数组去哈希表中查,查到就是交集元素,插入到结果数组中即可。直接分别排序,然后比较,但时间复杂度是O(logn),注意:排序同样也需要O(logn)的空间复杂度。再次遍历数组,有非零元素就说明false,否则true。初始化一个长度为26的全部为0的数组,当遍历第一个字符串,将字符串元素放到对应数组下标。但是,数组中同一个元素在答案里不能重复出现。直接将集合中的元素再插入到vector向量中。整数,并返回它们的数组下标。,请你在该数组中找出。

2023-10-31 18:35:18 34 1

原创 刷题记录day4|24. 两两交换链表中的节点 ,19.删除链表的倒数第N个节点, 面试题 02.07. 链表相交,142.环形链表II

然后步骤1,即哑节点的下一个是节点2,cur->next = cur->next->next;然后步骤2,但步骤1中cur的next已经变成了2,不是1了,那我们就无法找到节点1了,于是我们要一开始那一个temp1去标记一下节点1,即temp1 = cur->next让节点2去指向节点1,也就是cur->next->next = temp1;但此时也有同样的问题,那就是节点3也会因为节点2改变指向而丢失,所以节点3我们也要在一开始就标记一下,于是temp2 = cur->next->next->next;

2023-10-29 18:00:31 844 1

原创 刷题记录day3|203、移除链表元素 ,707、设计链表,206、反转链表

为什么要保存一下这个节点呢,因为接下来要改变 cur->next 的指向了,将cur->next 指向pre ,此时已经反转了第一个节点了。注意这里加了哑节点,通过增加哑节点可以统一操作,如果不用哑节点,当删除头节点时,就要 单独做处理,现在加上哑节点,就不用再单独处理了。如果是 删除就是让前一个节点指向删除节点的后一个节点,注意用一个指针指向被删除节点,然后将其delete。然后就要开始反转了,首先要把 cur->next 节点用tmp指针保存一下,也就是保存一下这个节点。是指向下一个节点的指针/引用。

2023-10-27 22:01:49 324

原创 刷题记录day2|977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结

public:k--;left++;}else {k--;right--;return ans;数组经典题目:二分,双指针,滑动窗口,模拟二分法:左闭右闭左闭右开双指针:都从左开始移动的双指针一左一右的双指针滑动窗口:时间复杂度O(n)模拟:注意边界值。

2023-10-26 21:56:08 459

原创 刷题记录day1|704、二分查找 27、移除元素

当快指针指向元素是目标元素时,快指针直接下一个,此时慢指针正指向这个目标元素,那么直接让快指针指向的不是目标元素的值去覆盖慢指针指向的目标值,以此来实现删除的目的,并且这个方法没有改变元素的相对位置。当target<nums[mid]时,说明目标值在左半部分,那么由于我们本来就是左闭右开的区间,右边的right本来就不包含right这个数值的,所以我们的right只需要等于mid就可以了,我们的mid本来就不再区间之内,所以就再想上面的那个方法一样再减1了。的元素,并返回移除后数组的新长度。

2023-10-25 22:07:34 636

空空如也

空空如也

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

TA关注的人

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