自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录day24|回溯算法理论基础、组合问题

回溯算法的本质是穷举,列举出各种可能,主要用于解决5种问题:组合问题、切割问题、子集问题、排列问题、棋盘问题。处理回溯问题一般采取三步:1、确定递归函数的返回值和参数 2、 回溯函数终止条件 3、单层搜索的过程。

2023-05-01 20:57:10 163

原创 代码随想录day23|修剪二叉搜索树、将有序数组转化成二叉搜索树、把二叉搜索树转换成累加树

修剪一棵二叉搜索树,将节点node不在low和hig范围内的删除。们确定递归函数的参数和返回值,传入参数为节点node,最小边界low,最大边界high。这道题我们采取任意一种递归顺序都可以,我写的是中左右,我们先处理一个节点,如果一个节点不在[low,high]范围内,我们返回是它修剪结束之后子树的根节点。

2023-04-30 11:02:06 103

原创 代码随想录day22| 二叉搜索树中的最近公共祖先、二叉搜索树中的插入操作、删除二叉搜索树中的节点

二叉树的最近公共祖先,其实也可以用寻找二叉树的最近公共祖先的方法来找,但是要善于利用二叉搜索树的特性,我们想要的是p、q的祖先,那么这个祖先一定在[p,q]或者[q,p]之间,而二叉搜索树具有一个节点一定大于它左子树上节点小于它右子树节点的特性,因此我们第一次找到节点满足这个区间的那个节点就是公共祖先。

2023-04-28 17:29:26 90

原创 代码随想录day21|二叉树的最近公共祖先、二叉搜索树的最小绝对差、二叉搜索树中的众数

这道题旨在找到最近公共祖先,需要返回节点本身,因此我们在返回类型时候需要返回节点。在的判断中止条件的时候,我们需要用到回溯的思想,当我们查到的值==q或者==p或者==NULL的时候,我们就需要返回这个节点。确定单层递归逻辑,我们需要让左右节点充当返回值,然后处理左右节点。

2023-04-28 12:00:56 84

原创 代码随想录day20|最大二叉树、合并二叉树、二叉搜索树中的搜索、验证二叉搜索树

当我们需要构造一个二叉树的时候,我们应该选用前序遍历的方法,我们先得到根节点,然后再遍历左右节点。这道题给出了nums.size()>=1,逐个遍历,nums.size肯定是在逐渐变小,只要等于1的时候就说明到了叶子节点,就可以中止遍历了。我们首先需要找到一个数组中的最大的节点,然后在其左边递归,然后在其右边递归。接下来给出的代码是存在冗余的,原因是因为我们每次递归都需要定义新的数组。通过索引优化代码,可以使得我们的代码不再那么冗余。

2023-04-24 16:53:17 239

原创 代码随想录day18|找到左下角的值、路径总和、从中序与后序遍历序列构造二叉树

这道题是找到最底层的最左边的值,很明显用层序遍历会简单很多,因为层序遍历的最后一行的第一个值就是我们要找到的结果。如代码所示,用result来记录结果,result在每一层都记录一次第一个数的值,遍历完result就是最后一层第一个数的值,也就找到了答案。

2023-04-22 20:28:05 460

原创 代码随想录day17|平衡二叉树、二叉树的所有路径、左叶子之和

这道题需要我们求解的是高度平衡,所以我们应该使用后序遍历的方法来求解本题。首先我们确定递归函数的传入参数和返回值,传入参数是每个节点,返回值是以每个节点为根节点树的高度。其次我们确定中止条件,终止条件就是节点为空,那么结果返回的树的结果就是0。接下来我们确定单层递归的逻辑,在这时候我们需要确定以一个节点为根节点的树都有两种结果,一个是返回的它的高度,另一个是返回-1,说明不是一个平衡二叉树。

2023-04-21 17:37:50 609

原创 代码随想录day15|二叉树的层序遍历、翻转二叉树、对称二叉树

我们要实现层序遍历,就需要一个队列来不断存放我们每层的元素,我们记录二叉树每层的元素个数,然后不断从队列中取出相同个数的元素,存放在结果数组中,这样我们就完成了我们层序遍历。

2023-04-19 16:29:27 901

原创 代码随想录day13|二叉树理论基础、二叉树的递归遍历、二叉树的迭代遍历

这边需要重点注意的是二叉树的链式节点的定义其中TreeNode(int x) : val(x) , left(NULL) , right(NULL){}是初始化列表的操作。

2023-04-18 21:07:48 1031

原创 代码随想录day9|实现strStr()、重复的子字符串

一般的字符串匹配问题我们可以使用KMP算法来处理,当我们搜索文本串和模式串是否匹配的时候,我们先得到模式串的一个前缀表,其中前缀表中存放的内容是模式串的最长相等前后缀。例如文本串为:aabaabaafa,模式串为:aabaaf,那么文本串的前缀表就是010120。当我们开始搜索时,我们发现在模式串f字符不匹配,我们就f前缀表中前一个字符的前缀表中的数值,发现是2,那么我们就跳到模式串下标为2的字符,继续遍历字符串。

2023-04-16 16:29:59 1642

原创 代码随想录11| 有效的括号、删除字符串中的所有相邻重复项、逆波兰表达式求值

这道题需要先把所有不匹配的情况都给列举出来,三种情况举例分别是:1、( [ { } ] ( ) 这种情况就是左边括号缺少对应的右边括号匹配2、( [ { } } ) 这种情况就是左边括号无法和右边括号匹配3、( [ { } ] ) ) ) 这种情况就是右边括号缺少对应的左边括号匹配。

2023-04-15 16:29:49 41

原创 代码随想录day10| 栈与队列理论基础、用栈实现队列、用队列实现栈

队列是先进先出,栈是先进后出。

2023-04-14 11:05:01 1638

原创 代码随想录day8|反转字符串、反转字符串II、替换空格、翻转字符串里的单词、左旋转字符串

这道题我们使用双指针法,一个指针指向首元素,一个指针指向末尾元素,相互交换数值,然后首指针加1,末尾指针减1,继续交换。

2023-04-12 16:01:33 2072

原创 代码随想录day7| 四数相加、赎金信、三数之和、四数之和

这道题可以直接使用4个for循环去求解,但是这样时间复杂度会高很多,我们可以将四个数组两两拆分,使用unordered_map容器去求解问题,首先我们遍历nums1和nums2两个数组,将其中的元素之和设置成key,将元素之和出现的次数设置成value。对于这个数组来说map容器中就有key=-1,value =1;接下来,遍历nums3和nums4中的数,这时候我们需要判断的是-(c+d)是否在map中出现过,要是出现过,那么计数器就可以直接加上已经出现过的次数。要是还是另外出现过,就继续加。

2023-04-11 14:02:28 2317

原创 代码随想录day6|哈希表理论基础、有效的字母异位词、两个数组的交集、快乐数、两数之和

当需要判断一个元素是否在一个集合中,哈希表的时间复杂度只有O(1)。哈希表有一个映射的操作,当映射的元素在同一个索引下标的位置,就会引发。哈希碰撞的两种解决方法:拉链法线性探测法同时,哈希表还有常见的三种数据结构:分别是数组、集合set、映射map。

2023-04-10 17:30:29 2623

原创 代码随想录day4| 两两交换链表中的节点、删除链表中倒数第N个节点、链表相交、环形链表

这种需要处理第一个节点的题目,需要设置一个虚拟头节点,同时在更改的指针指向的时候,设立两个临时指针,将需要改变的三个节点的顺序依次改变。思想就是使用双指针,让fast指针先走n+1步,然后再让两个指针同时向前走,这样一来,当fast指针走完了全程,slow指针就可以走到要删除的那个节点的前一个位置。

2023-04-08 14:13:45 2992 1

原创 代码随想录day3|链表理论基础、移除链表元素、设计链表、翻转链表

1、基本类型:单链表、双链表、循环链表2、存储方式:和数组不一样,链表是随机存储在内存中,不是连续分配在内存中。定义了一个数据域,还有一个指针域,并且定义了一个构造函数。4、链表的操作:删除节点:在图中,若需要删除D这个节点,只需要让C的指针域指向E就行了,然后手动删除D节点就完成了删除节点的操作。增加节点:在这个图中,添加一个节点F,只需要将C的指针域指向F,F的指针域指向D,完成添加节点的操作。5、性能分析。

2023-04-07 14:41:14 3182 1

原创 代码随想录day2|有序数组的平方、长度最小的子数组、螺旋矩阵

今天去校医院拔了两颗牙,太痛了,今天写的博客就比较水。

2023-04-07 10:26:41 3068 1

原创 代码随想录day1|数组理论、二分查找、移除元素

数组是内存中相同数据类型数据的一种集合删除数组元素是覆盖操作,不能直接进行删除。

2023-04-05 10:15:16 3180 1

空空如也

空空如也

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

TA关注的人

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