- 博客(23)
- 收藏
- 关注
原创 21. 复原IP地址,78.子集,90.子集II
其实子集也是一种组合问题,因为它的集合是无序的,子集{1,2} 和 子集{2,1}是一样的。如果把 子集问题、组合问题、分割问题都抽象为一棵树的话,区别就是集合里有重复元素了,而且求取的子集要去重。那么关于回溯算法中的去重问题,
2024-07-01 17:29:13 88
原创 19. 回溯理论基础,77. 组合, 216.组合总和III,17.电话号码的字母组合
所有回溯法的问题都可以抽象为树形结构!因为回溯法解决的都是在集合中递归查找子集,
2024-06-28 12:02:52 202
原创 18. 669. 修剪二叉搜索树,108.将有序数组转换为二叉搜索树,538.把二叉搜索树转换为累加树,总结
【代码】18. 669. 修剪二叉搜索树,108.将有序数组转换为二叉搜索树,538.把二叉搜索树转换为累加树,总结。
2024-06-27 11:07:57 118
原创 17. 235. 二叉搜索树的最近公共祖先,701.二叉搜索树中的插入操作,450.删除二叉搜索树中的节点
【代码】17. 235. 二叉搜索树的最近公共祖先,701.二叉搜索树中的插入操作,450.删除二叉搜索树中的节点。
2024-06-26 12:06:44 136
原创 16. 530.二叉搜索树的最小绝对差,501.二叉搜索树中的众数,236. 二叉树的最近公共祖先
值得注意的是 本题函数有返回值,是因为回溯的过程需要递归函数的返回值做判断,但本题我们依然要。如果递归函数有返回值,如何区分要搜索一条边,还是搜索整个树呢?
2024-06-25 12:01:53 122
原创 15. 654.最大二叉树, 617.合并二叉树, 700.二叉搜索树中的搜索 , 98.验证二叉搜索树
【代码】15. 654.最大二叉树, 617.合并二叉树, 700.二叉搜索树中的搜索 , 98.验证二叉搜索树。
2024-06-22 17:37:47 89
原创 14. 513.找树左下角的值,112.路径总和,106.从中序与后序遍历序列构造二叉树
【代码】14. 513.找树左下角的值,112.路径总和,106.从中序与后序遍历序列构造二叉树。
2024-06-21 15:19:39 106
原创 13. 110.平衡二叉树,257. 二叉树的所有路径,404.左叶子之和, 222.完全二叉树的节点个数
平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。
2024-06-20 14:20:26 106
原创 12. 226.翻转二叉树(优先掌握递归), 101. 对称二叉树 (优先掌握递归),104.二叉树的最大深度 (优先掌握递归)111.二叉树的最小深度(优先掌握递归)
那么使用后序遍历,其实求的是根节点到叶子节点的最小距离,就是求高度的过程,不过这个最小距离 也同样是最小深度。本题遍历只能是“后序遍历”,因为我们要通过递归函数的返回值来判断两个子树的内侧节点和外侧节点是否相等。但都可以理解算是后序遍历,尽管已经不是严格上在一个树上进行遍历的后序遍历了。本题依然是前序遍历和后序遍历都可以,前序求的是深度,后序求的是高度。本题可以使用前序(中左右),也可以使用后序遍历(左右中),使用。,所以本题中我们通过后序求的根节点高度来求的二叉树最大深度。二叉树节点的深度:指从。
2024-06-19 15:01:51 294
原创 01. 设计模式-单例模式(创建型模式)
单例模式(Singleton Pattern)是一种创建型设计模式,它确保,并提供一个全局访问点。单例模式的典型应用就是任务队列。单例模式在实际应用中有两种常见的实现方式:懒汉模式(Lazy Initialization)和饿汉模式(Eager Initialization)。
2024-06-17 16:54:13 247
原创 10. 150. 逆波兰表达式求值 , 239. 滑动窗口最大值, 347.前 K 个高频元素
缺省情况下priority_queue利用max-heap(大顶堆)完成对元素的排序,这个大顶堆是以vector为表现形式的complete binary tree(完全二叉树)。,因为优先级队列对外接口只是从队头取元素,从队尾添加元素,再无其他取元素的方式,看起来就是一个队列。保持如上规则,每次窗口移动的时候,只要问que.front()就可以返回当前窗口的最大值。那么这个维护元素单调递减的队列就叫做。
2024-06-17 13:29:38 177
原创 09. 栈与队列,232.用栈实现队列, 225. 用队列实现栈,20. 有效的括号,1047. 删除字符串中的所有相邻重复项
来说其实也是匹配问题,20. 有效的括号是匹配左右括号,本题是匹配相邻元素,最后都是做消除的操作。本题要删除相邻相同元素,相对于。
2024-06-15 11:22:17 224
原创 07. 字符串理论基础,344.反转字符串,541.反转字符串II,卡码网:54.替换数字
这么做有两个好处:(1)不用申请新数组;(2)从后向前填充元素,避免了从前向后填充元素时,每次添加元素都要将添加元素之后的所有元素向后移动的问题。
2024-06-13 12:07:42 114
原创 06. 454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和
【代码】06. 454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和。
2024-06-13 10:42:16 204
原创 05. 哈希表理论基础, 242.有效的字母异位词,349. 两个数组的交集,202. 快乐数,1. 两数之和
因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。
2024-06-11 10:58:21 96
原创 04. 24.两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题 02.07.链表相交,142.环形链表II,总结
【代码】04. 24.两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题 02.07.链表相交,142.环形链表II,总结。
2024-06-08 15:13:01 165
原创 03. 链表理论基础,203.移除链表元素, 707.设计链表, 206.反转链表
【代码】03. 链表理论基础,203.移除链表元素, 707.设计链表, 206.反转链表。
2024-06-07 14:54:44 192
原创 02. 数组,977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II
【代码】02. 数组,977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II。
2024-06-06 11:57:45 94
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人