自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++——STL

vector是一种基于动态数组实现的容器,在堆上分配一块连续的内存存储元素,也就是说vector的元素存储在内存中是连续的,能够通过索引随机访问顺序访问任意元素,时间复杂度为O(1);当失衡节点5左旋的时候,发现和节点6发生冲突了,那么将节点6变成节点5的右孩子,简单的记为“冲突的左孩变右孩”插入节点后如果导致多个祖先节点失衡,只需调整距离插入节点最近的失衡节点,其他失衡节点会自然平衡。分配一块更大的内存,将原来的元素复制到新分配的内存中,释放原来的内存,插入新的元素。1. vector底层实现是数组;

2024-09-28 20:20:46 754

原创 C++基础知识—边学边积累的不是很懂的知识

在 C++ 中,namespace是一种封装标识符(如变量名、类名、函数名等)的方式,用于防止命名冲突。这是一种非常有用的特性,特别是在大型项目或在多人合作的项目中,它能帮助维护代码的组织结构,使得不同库或模块中的同名函数、类或变量可以共存。

2024-08-29 20:01:31 613

原创 代码随想录训练营第21天(补卡)|530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236.二叉搜索树的最近公共祖先

思路2:首先一定是中序遍历,pre指针指向cur的前一个元素,如果pre和cur指向的元素值相等的话,count做++操作,count统计的是单个元素出现的频率,maxCount是所有元素出现的最高频率,如果count与maxCount相等的话,就把该元素放进result中,如果count大于maxCount,则将count赋值给maxCount,将原来结果集中的元素清理掉,将新的值加入进去。思路1:如果不是二叉搜索树,把这个树遍历一遍,用map统计频率,把频率排序,最后取前面高频的元素的集合。

2024-05-22 17:28:25 190

原创 代码随想录训练营第33期第20天(补卡)|654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树

构造二叉树类的题目一定要用前序去构造(将中间节点构造出来 再去构造左子树和右子树)最大元素就是根节 点。

2024-05-06 18:52:12 418

原创 代码随想录训练营第十八天|513.找树左下角的值、112.路径总和、113.路径总和ii、106.从中序与后序遍历序列构造二叉树、105.从前序与中序遍历序列构造二叉树

思路:利用最大深度找到树的最后一行,使用前序遍历找到最左边的值以上代参考代码随想录。

2024-05-05 17:22:00 230 3

原创 代码随想录训练营第十七天|110、平衡二叉树.257、二叉树的所有路径.404、左叶子之和

题目描述:给定一个二叉树,判断它是否是高度平衡的二叉树本题中,一颗高度平衡的二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1高度、深度、遍历顺序一个节点的左右两个子树的高度差不超过1求高度,用后序遍历1、确定递归函数的参数和返回值2、终止条件3、确定单层递归的逻辑采用后续遍历。

2024-04-26 17:46:19 207

原创 代码随想录训练营第十六天|104.二叉树的最大深度、559.n叉数的最大深度、111二叉树的最小深度、222、完全二叉树的节点个数

先求左子树的深度、再求右子树的深度、最后求左右sh最大数值+1。,通过后序求的根节点高度来求二叉树的最大深度。高度:二叉树里任意一个节点到叶子节点的距离。深度:二叉树里任意一个节点到根节点的距离。求高度用后序遍历 求深度用前序遍历。用后序遍历(左右中)计算树的高度。1、确定递归函数的参数和返回值。递归函数就是这个树的深度函数。如果为空节点,高度就为0。3、确定单层递归的逻辑。

2024-04-22 22:15:24 344

原创 代码随想录训练营第十五天|层序遍历 10、226.翻转二叉树、101.对称二叉树 2

将该层遍历的元素记录在一维数组中 当然 遍历结束之后 将元素放入到二维数组中。给你二叉树的根节点root,返回其节点的层序遍历。即逐层的,从左到右访问所有节点。判断根节点是否为空,不为空的话,将第一个几点加入到队列中。定义一个一维数组 将该层结果放入到里面。获取队列的第一个元素 队列弹出元素。将节点的左右孩子加入到我们的队列中。当队列不为空,就一直去遍历。接下来是遍历当前层的元素。首先记录一下队列的大小。

2024-04-17 19:25:00 241

原创 代码随想录训练营第13天|239.滑动窗口最大值,347.前K个高频元素

维护元素单调递减的队列就叫做单调队列,即单调递减或单调递增的队列 需要我们自己去实现一个单调队列。只需要维护有可能成为窗口里最大值的元素就可以了,同时保证队列里的元素数值是从大到小的。思路:该题有点难 思路好像没办法形成自己的语言 去写下来 参考代码随想录。

2024-04-02 14:48:19 189

原创 代码随想录训练营第11天|20. 有效的括号、 1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值

思路:括号匹配是用栈解决的经典问题该题有三种不匹配情况:①字符串左方向的括号不匹配 多出来左括号②括号不多不少,只是括号不对应③字符串右方向的括号不匹配,多出来右括号对应的解决办法:①将队列里面左方向的括号对应的右括号放入栈中,然后遍历队列的字符串,当左字符串遍历结束,发现栈不为空,说明多了左字符串②把左方向的括号对应的右括号放入栈中,然后与原字符串比较,不匹配的话,不符合题目要求③与①相反,字符串还没遍历结束,栈为空——右括号多了。

2024-03-26 15:16:07 195

原创 代码随想录训练营第10天|理论基础,232用栈实现队列,225用队列实现栈

代码随想录 (programmercarl.com)栈与队列是STL里面的两个数据库,学习的栈与队列也是SGI STL里面的数据结构队列是先进先出,栈是先进后出C++中stack 是容器么?我们使用的stack是属于哪个版本的STL?我们使用的STL中stack是如何实现的?stack 提供迭代器来遍历stack空间么?回答一下代码随想录中的问题。1,STL中栈不被归类为容器,而被归类为container adapter(容器适配器),同样队列也是2,SGI STL。

2024-03-22 12:24:23 353 1

原创 代码随想录训练营第七天|454.四数相加II,383.赎金信,15.三数之和,18.四数之和

思路:该题不用考虑结果去重的操作。遍历大A和大B数组,统计两个数组元素之和,和出现的次数,放到map中,再遍历大C和大D数组,将0-(c+d)在map中寻找,如果存在,将value值统计出来。

2024-03-14 17:15:03 325

原创 代码随想录训练营第六天|哈希表理论基础、242.有效的字母异位词、349.两个数组的交集、202.快乐数、1.两数之和

思路:先将字符串S中字符出现的次数统计出来 做+1操作,再将字符串t中字符出现的次数继续在数组中遍历做-1操作,最终遍历数组,若数组中有元素不等于0,return false,若数组中有元素等于0,return true;

2024-03-13 16:49:58 477

原创 代码训练营第四天|24. 两两交换链表中的节点 ,19.删除链表的倒数第N个节点 ,面试题 02.07. 链表相交 ,142.环形链表II

注意:什么时候终止循环?当cur指针的下一个节点是空节点并且cur指针的下下个节点是空节点为了避免对空指针进行操作,两个条件的顺序不可以变。定义swapPairs函数,它接受一个链表的头节点作为参数,并返回交换相邻节点后的链表头节点。(此句话来自以下代码参考代码随想录。

2024-03-11 17:20:13 366

原创 代码随想录训练营第三天|链表理论基础,203.移除链表元素 ,707.设计链表 ,206.反转链表

考察单链表的删除元素的操作 分为两种解法:1.不使用虚拟头节点2.使用虚拟头节点移除头节点和非头节点的操作是不一样的,若加一个虚拟头节点,代码可以实现统一,能方便许多!a.删除头节点注意:头节点不可以为空;C++语言写的代码,删除结点之后,记得释放内存哦!b.删非头节点创建一个指针 指向头节点,因为删除的是非头节点,指针需要指向头节点,如果指向其他节点,删除非头节点后,又因为是单链表,头节点没做记录,没办法将链表连接起来了!

2024-03-08 16:51:14 424 1

原创 代码随想录算法训练营第二天|977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II

题目:给你一个按。

2024-03-07 17:07:34 1118

原创 代码随想录算法训练营第一天|704.二分查找、27.移除元素

根据Carl哥在B站讲解以及代码随想录中的内容,做了笔记以及简要总结。有关内容参考以上文章链接!①数组为有序数组;②数组中无重复元素 在704题目中,数组是升序整型数组。二分法区间定义一般分为两种:[left,right],[left,right)①在左闭右闭区间里面,left=right是合法的,所以whlie(left

2024-03-06 21:07:57 466

空空如也

空空如也

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

TA关注的人

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