我学算法
文章平均质量分 59
阿琛与树
这个作者很懒,什么都没留下…
展开
-
Day27-两道想破脑袋的[回溯]题目
排序,重复的元素一定不是排好序以后相同的连续数组区域的第 1 个元素。个结点,因为数值相同的第 1 个结点已经搜索出了包含了这个数值的全部结果. **都知道组合问题可以抽象为树形结构,那么“使用过”在这个树形结构上是有两个维度的,一个维度是同一树枝上使用过,一个维度是同一树层上使用过。回看一下题目,元素在同一个组合内是可以重复的,怎么重复都没事,但两个组合不能相同。那么问题来了,我们是要同一树层上使用过,还是同一树枝上使用过呢?,同一树枝上的都是一个组合里的元素,不用去重。原创 2023-01-04 10:11:35 · 283 阅读 · 0 评论 -
Day25-[回溯算法]ans.append(path[:])哟
可以改进: backtrack直接传入当前的sum,不用反复调用sum(path)Day25-[回溯算法]ans.append(path[:])哟。原创 2023-01-04 10:08:42 · 147 阅读 · 0 评论 -
Day24-[回溯算法]开篇引入
因为nums = [0, …, n], 所以未优化时,, 注意startIndex从1开始.原创 2023-01-04 10:04:50 · 118 阅读 · 0 评论 -
Day23-二叉树终于告一段落了
前中后序 递归/迭代[使用栈Stack]层序遍历[使用队列]二叉树的属性:提纲挈领: 分情况讨论时,5种情况: 1) root为None;2) 左子树None;3) 右子树None;4) 左右子树皆None;5) 左右子树皆不None;二叉树:是否对称递归:后序,比较的是根节点的左子树与右子树是不是相互翻转迭代:使用队列/栈将两个节点顺序放入容器中进行比较二叉树:求最大深度递归:后序,求根节点最大高度就是最大深度,通过递归函数的返回值做计算树的高度迭代:层序遍历。原创 2023-01-04 10:03:04 · 349 阅读 · 0 评论 -
Day22-[二叉树插入和删除]迭代遍历
Sol1 递归Sol2 迭代二叉树的单个节点增加,不需要改变原本二叉树的结构,只需要找到合适的null节点,插入即可.这里就把二叉搜索树中删除节点遇到的情况都搞清楚。原创 2023-01-04 09:57:19 · 376 阅读 · 0 评论 -
Day21-[公共祖先]真滴好难
中序遍历,取出有序数组,然后找到最小值。原创 2023-01-04 09:54:07 · 54 阅读 · 0 评论 -
Day13-值得温故知新的[队列]应用问题
所以大家经常说的大顶堆(堆头是最大元素),小顶堆(堆头是最小元素),如果懒得自己实现的话,就直接用priority_queue(优先级队列)就可以了,底层实现都是一样的,从小到大排就是小顶堆,从大到小排就是大顶堆。缺省情况下priority_queue利用max-heap(大顶堆)完成对元素的排序,这个大顶堆是以vector为表现形式的complete binary tree(完全二叉树)。,因为优先级队列对外接口只是从队头取元素,从队尾添加元素,再无其他取元素的方式,看起来就是一个队列。原创 2023-01-04 09:51:19 · 161 阅读 · 0 评论 -
Day11-两个适用[栈]的问题
【代码】Day11-两个适用[栈]的问题。原创 2023-01-04 09:48:02 · 54 阅读 · 0 评论 -
Day10-用栈实现队列,用队列实现栈
这道题目就是用一个队列就够了.原创 2023-01-04 09:45:22 · 68 阅读 · 0 评论 -
Day20-あなたの[二叉树]はとても上手です
按照105.106的思路,快速一遍过617. Merge Two Binary Trees可以直接在root1上操作节省空间.700. Search in a Binary Search Tree二叉搜索树是一个有序树:前序递归 & 前序迭代98. Validate Binary Search Tree中序迭代 有点难理解原创 2022-12-08 00:02:45 · 217 阅读 · 0 评论 -
Day18-恶魔低语: [递归&迭代], 两种方法掌握一下
一开始的朴素思想是, Bottom Left Node一定是一个左子树衍生的叶子结点. 但实际会有cur节点没有左子树,而右子树就成为了这一层的leftmost.终止条件只需要在depth 增加时, 更新叶子结点的取值即可.前序递归 & 层序迭代112. Path Sum前序递归: 一遍过好耶113. Path Sum II前序递归:一遍过好耶106. Construct Binary Tree from Inorder and Postorder Traversal前序和后序的共同特点,原创 2022-12-08 00:00:13 · 341 阅读 · 0 评论 -
Day17: 二叉树之路, 道阻且长啊
!!! 平衡二叉树的左右子树仍为平衡二叉树.A height balanced binary tree is a binary tree in which the height of the left subtree and right subtree of any node does not differ by more than 1 and both the left and right subtree are also height balanced.关于根节点的深度究竟是1 还是 0,不同的地方有不原创 2022-12-07 23:58:49 · 296 阅读 · 0 评论 -
Day16-[前序递归]&[层序迭代]:二叉树的两只拦路虎
二叉树深度:节点到根结点的距离. (每有一个节点 包含当前节点.) 越向下越大.二叉树高度:节点到叶子节点的距离. (每有一个节点 包含当前节点.) 越向上越大.求高度:后序遍历 左右中; 求深度: 前序遍历 中左右;求二叉树的最大深度,就是求最大高度. 把需要前序解决的问题,转换为后序的问题.层序迭代 & 后序递归这里展现一下,前序递归的回溯思想(重点关注,相较于上面的后序遍历,麻烦在哪里.)代码简化后:559. Maximum Depth of N-ary Tree两种方法: 层序 迭代 & 前原创 2022-12-07 23:57:09 · 309 阅读 · 0 评论 -
Day15-掌握了递归? 那我要考考你[迭代]
层序遍历 (使用队列实现)队列先进先出, 符合一层一层遍历的逻辑, 而是用栈先进后出适合模拟深度优先遍历也就是递归的逻辑.226. Invert Binary Tree中序遍历: 注意第二次依然要遍历左孩子,因为中间节点已经翻转了.101. Symmetric Tree2022.12.07 rewrite原创 2022-12-07 23:55:03 · 132 阅读 · 0 评论 -
Day14-走遍弯路,才知道人间正道是[递归]
二叉树Leetcode满二叉树定义:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。 也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树。若设二叉树的深度为h,除第h 层外,其它各层(1~h-1) 的结点数都达到最大个数,第h 层所有的结点都连续集中在最左边,这就是完全二叉树。前面介绍的树,都没有数值的,而二叉搜索树是有数值的了,二叉搜索树是一个有序树。平衡二叉搜索树:又被称为AVL(Adelson-Velsky and Landis)树,且具有以下原创 2022-12-07 23:43:02 · 272 阅读 · 0 评论 -
Day9-[KMP]难不倒我
要不要使用库函数:如果库函数仅仅是 解题过程中的一小部分, 并且你已经很清楚这个库函数的内部实现原理的话, 可以考虑使用库函数.原创 2022-12-01 04:07:02 · 198 阅读 · 0 评论 -
Day8-活学活用[字符串]
【代码】Day8-活学活用[字符串]原创 2022-12-01 04:05:20 · 73 阅读 · 0 评论 -
Day7-[N数相加],我只选双指针
双指针可以使时间复杂度 divide by N (本题中由O(N的3次方)下降为O(N的平方)重做:进阶在第一层和第二层考虑剪枝。原创 2022-12-01 04:03:10 · 81 阅读 · 0 评论 -
Day6-创造[哈希表]:array,set,map
mSet = {}原创 2022-11-24 06:30:57 · 177 阅读 · 0 评论 -
Day4-除了142的环形链表,链表觉得很chilling
一句真言: 在需要变动的节点前一位,进行指针操作.虚拟头节点的作用: 单链表加上虚拟头节点之后,无论单链表是否为空,头指针始终指向头结点,因此空表和非空表的处理也统一了,方便了单链表的操作,也减少了程序的复杂性和出现bug的机会。不带头结点的链表对首元结点、中间结点分别处理等;而带头结点的链表因为有头结点,首元结点、中间结点的操作相同 ,从而减少分支,使算法变得简单 ,流程清晰。以后统一链表中元素 19, 删除链表的倒数第N个节点双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让f原创 2022-11-23 06:02:56 · 105 阅读 · 0 评论 -
Day3-渐渐明白[链表]的边界
代码随想录算法训练营Day3。原创 2022-11-23 01:35:13 · 177 阅读 · 0 评论 -
Day2-[滑动窗口]你给我领悟
给了提示双指针,一遍过芜湖,不多解释.原创 2022-11-18 02:36:51 · 272 阅读 · 0 评论 -
Day1-[二分查找]我一拳把你打下
我学算法原创 2022-11-16 22:00:11 · 349 阅读 · 1 评论