- 博客(16)
- 收藏
- 关注
原创 【刷题Day 27&29】回溯同层去重(待补充)
思路:遍历整棵树+同层去重。同层去重需要先排序,然后设置布尔数组和相邻两元素相同共同确定是同层/同枝。思路:输入数组无序。使用set针对同一父节点本层去重。思路:收集所有树的结点,即遍历整棵树,不需要剪枝。1 .去重即跳过不满足条件的值。
2024-03-06 11:32:47
407
原创 【刷题Day23】二叉树09
又被称为AVL(Adelson-Velsky and Landis)树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
2024-02-28 15:23:09
447
1
原创 【刷题Day20】二叉树07
二叉搜索树(BST,Binary Search Tree),也称二叉排序树或二叉查找树。二叉搜索树:一棵二叉树,可以为空;如果不为空,满足以下性质:非空左子树的所有键值小于其根结点的键值。非空右子树的所有键值大于其根结点的键值。左、右子树都是二叉搜索树。
2024-02-25 18:45:56
409
1
原创 【刷题Day16】二叉树03 递归法应用
完全二叉树是除了最后一层其余层全满的二叉树,且最后一层节点全部集中在树的左边。若最底层位h层,则最后一层节点数在1~2^(h-1)之间。思路:后序遍历递归,将二叉树的左右子树遍历换成同层的节点遍历。思路:递归记录每个过程经过的节点,再返回给上一层函数。法1:递归法,采用后序遍历。法2:迭代法-层序遍历模板。加深了对递归三要素的理解。思路:考虑特殊条件递归。
2024-02-19 17:29:05
401
1
原创 【刷题Day15】二叉树-层序遍历(待补充)
是图论中的广度优先搜索在二叉树中的应用。具体来讲,使用队列暂存即将遍历的二叉树链表的节点指针地址,在pop出队列时对单一节点进行操作。
2024-02-19 00:07:46
386
1
原创 【刷题DAY 13】栈与队列03
C++中deque是stack和queue默认的底层实现容器。参考deque (double-ended queue 双端队列)为双向开口的连续线性空间,相比vetor在头端元素插入删除效率更高,但迭代器复杂度更高,通常情况下使用vectordeque双端插入和删除操作。
2024-02-16 21:15:47
406
1
原创 【Day 11】栈与队列02
1 .使用栈解决相邻元素匹配/消除/运算的问题。思路:先分析三种不合规律情况,再写代码。思路:相邻元素匹配消除问题用栈。思路:相邻元素匹配计算,采用栈。
2024-02-03 23:52:53
351
1
原创 【刷题Day 8】
思路:拆解为去除空格、翻转字符串、翻转单词三部分写代码。其中翻转单词部分通过设置头尾进行。思路:需要固定规律一段一段去处理字符串的时候,考虑改变for循环的结构,不关键部分可以使用库函数。即这道题里不可以reverse(str.begin(), str.end());1 . 处理字符串相关的题可以适当调用swap、reverse等库函数。2. 遇到字符串翻转/反转/头尾互换,优先考虑reverse串并联。思路:在不关键的步骤可以调用库函数,但是关键步骤不能用库函数。思路:整体翻转+部分翻转。
2024-01-31 23:43:42
406
原创 【刷题Day7】
思路:由于题目要求加和元组可重复,将四个数组拆解成两组遍历。先遍历其中一组创建map,key为和,value为该和出现的次数。再遍历第二组,判断map中的加和跟第二组是否有满足条件的值,若有,对计数器进行增加。法1:O(n^4)暴力解法,超时法2:O(n^2)
2024-01-30 22:32:28
379
1
原创 【刷题Day 6】
set/multiset容器简介:所有元素都会在插入时被自动排序本质:关联式容器,底层结构采用,查询/增删效率均为O(log n)。区别:set不允许容器中元素重复,multiset允许。
2024-01-30 00:16:53
423
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅