自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第六章(二叉树part03)

难点:要注意回溯,移除当前节点值,因为path是引用形式,一直使用同一个path,如果不设置为引用,每次自动创建拷贝个新的path容器,遍历到最后函数结束对应函数的该path容器也销毁,此时不用写回溯弹出节点。4. 递归逻辑:先递归计算左右子树深度,再根据左右子树深度判断当前子树是否平衡。若平衡,则返回当前子树深度(左右子树深度较大值加1)。若子树不平衡,返回特定标记值(如-1)。难点:理解判断左叶子节点,要停在该节点的父节点位置进行判断。如果是,返回左子节点的值加上右子树的左叶子节点值之和,即。

2025-03-26 22:17:50 614

原创 第六章(二叉树part02)

思路递归完成前序 中->左->右 进行翻转后序 左 右 中 进行翻转迭代完成使用层序遍历,依旧是中左右的遍历顺序代码思路根节点是对称的,只需要判断根节点下面的两个节点的值,以及左节点的左孩子和右节点的右孩子(外外), 左节点的右孩子和右孩子的左节点(内内),都相同就对称。递归实现递归返回值为布尔类型,递归参数是左右子树地址。递归终止条件,空条件,都空返回true,非空条件。有一个不空或者两个不空但值不等返回false。

2025-03-26 10:20:27 665

原创 第六章(二叉树part01)

操作普通二叉树平衡二叉搜索树(AVL)插入/删除/查找O(n)O(logn)遍历(DFS/BFS)O(n)O(n)应用场景速查:动态数据集合 → 平衡二叉搜索树(如。

2025-03-25 14:21:36 618

原创 第四章(字符串part02)未完结。。

C++ String类基础操作函数功能:获取字符串长度底层实现:直接返回内部维护的_M_length成员变量时间复杂度:O(1)功能:判断字符串是否为空底层实现:检查时间复杂度:O(1)功能:清空字符串内容底层实现:设置,不释放内存时间复杂度:O(1)s.clear();子串操作函数功能:截取子串底层实现:创建新string对象复制从pos开始的len个字符需要内存分配和字符拷贝时间复杂度:O(len)功能:查找子串位置底层实现:朴素字符串匹配算法。

2025-03-20 21:45:24 1661

原创 第四章(字符串part01)

从0开始遍历,每次前进2k个距离,分两种情况反转,调用reverse函数。利用双指针法,一个i指向旧字符串的尾字符位置,一个指j向新字符的尾位置。利用string 类的resize函数,对原数组(字符串)进行扩容。从前向后遍历str[i],来给str[j]赋值。

2025-03-19 22:01:37 230

原创 第三章(哈希表part02)

注意多思考双指针的解题思路。哈希法进行去重操作很复杂。

2025-03-18 17:59:55 1827

原创 第三章(哈希表part01)

哈希表的概念哈希表的概念哈希表是一种数据结构,用于存储键值对,并通过哈希函数将键映射到存储位置,以实现快速的数据访问。哈希表通常由一个数组和一个哈希函数组成。在使用哈希表时,可能会出现冲突,即不同的键映射到同一个存储位置的情况。:当发生冲突时,顺序地在哈希表中的其他位置寻找空槽来存储数据。这种方法包括线性探测、二次探测和双重散列等策略。:将哈希表的每个槽都连接成一个链表,当发生冲突时,将数据插入到对应位置的链表中。这种方法可以解决任意数量的冲突,但可能会使得哈希表的性能受到链表长度的影响。

2025-03-17 22:24:58 788

原创 第二章(链表part02)

利用快慢指针的特性,当快指针遍历到链表尾后元素时,慢指针刚好距离链表尾后指针n个距离,符合提意。需要注意的是,链表相交的节点,指的是节点的。本题可以使用快慢指针的方法来解决。,环入口到快慢指针相遇点的距离为。设链表头到环入口的距离为。,相遇点到环入口的距离为。

2025-03-15 17:44:48 747

原创 第二章(链表part01)

学习使用虚拟节点。注意头部节点可能存在的边界问题。707. 设计链表关键操作获取节点值:按索引访问节点,单链表需从头遍历,时间复杂度O(n);双向链表可根据索引位置,判断其在中间位置mid前后,选择从头部或尾部遍历,平均性能更好。插入节点:包括头插、尾插和指定位置插入。头插和尾插操作相对简单,指定位置插入需先找到插入位置,时间复杂度取决于查找位置的效率。删除节点:删除指定位置节点,同样需先定位节点,再修改指针关系,单链表删除当前节点有时需特殊处理。哨兵节点(虚拟节点)

2025-03-14 16:06:23 684

原创 第一章(数组 part02)

对于长度为n的数组arr,其前缀和数组prefixSum长度也为n表示数组arr中从索引0到索引i的所有元素之和。对于n行m列的二维数组matrix,其二维前缀和数组prefixSum是一个(n + 1)行(m + 1)列的数组(多一行一列是为了方便处理边界),表示二维数组matrix中从左上角(0, 0)到右下角所构成的子矩阵中所有元素的和。

2025-03-13 16:36:02 1679

原创 第一章(数组 part01)

思想逻辑:设置两个指针,快指针移动速度比慢指针快(比如快指针一次移动多个位置,慢指针一次移动一个位置)。快指针先跑,快速扫描数据,当快指针遇到符合某种条件(如遇到特定值、到达特定位置等)的元素时,慢指针才相应地移动并进行处理(比如记录位置、交换元素等)。通过这样不同的移动速度和时机,利用快指针的 “快” 来引导慢指针找到需要的结果,当满足一定的结束条件(如快指针到结尾、快慢指针重合等)时,就能得到问题的答案,像找出链表中间节点、删除数组中特定元素等问题都可以用这种方式解决。左闭右闭区间:右边界取尾元素。

2025-03-12 23:33:52 282

空空如也

空空如也

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

TA关注的人

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