随笔分类 - 图
摘要:2019-03-27 15:39:37 问题描述: 问题求解: 很有意思的问题,问题描述简单,求解过程也可以非常的简洁,是个难得的好题。 求解的过程是自底向上进行分析,对于叶子节点,如果在叶子上放置照相机,显然是没有在其parent上放置相机来的合适的,因为叶子节点的覆盖范围没有其parent节点大
阅读全文
摘要:2019-03-25 14:10:51 非递归遍历二叉树的Java版本实现之前已经进行了总结,这次做的是非递归遍历多叉树的Java版本实现。 在非递归遍历二叉树的问题中我个人比较推荐的是使用双while的方式来进行求解,因为这种方法比较直观,和遍历的顺序完全对应。 但是在非递归遍历多叉树的时候,使用
阅读全文
摘要:2018-10-06 22:04:38 问题描述: 问题求解: 对于边没有权重的最短路径的求解,首选的方案是bfs。 本题要求是求遍历所有节点的最短路径,由于本题中是没有要求一个节点只能访问一次的,也就是说可以访问一个节点多次,但是如果表征两次节点状态呢?可以使用(curNode, VisitedN
阅读全文
摘要:2018-10-06 19:44:18 问题描述: 问题求解: 经典的求连通块问题的扩展,问题规模不大,可以暴力求解。 解法一、Brute Force O(n^4) 解法二、 为每个连通块做上标记,并得到每个连通块的面积,之后再对0进行遍历,依次寻找其四个相邻的边的area,将他们加起来再从中取ma
阅读全文
摘要:2018-10-03 20:16:53 非递归遍历二叉树是使用堆栈来进行保存,个人推荐使用双while结构,完全按照遍历顺序来进行堆栈的操作,当然在前序和后序的遍历过程中还有其他的压栈流程。 一、Binary Tree Preorder Traversal 问题描述: 问题求解: 先序遍历就是在第一
阅读全文
摘要:2018-09-25 16:36:25 问题描述: 问题求解: 单纯遍历了一遍,emmm,果然TLE。 解题思路就是比较左边树高度和右边树高度,如果相等,那么就是一个满二叉树,返回1 << h - 1即可,如果不是,则递归的计算左右子树的个数。 时间复杂度:O(logn * logn) 2019-0
阅读全文
摘要:2018-09-24 12:01:38 问题描述: 对于一个具有树特征的无向图,我们可选择任何一个节点作为根。图因此可以成为树,在所有可能的树中,具有最小高度的树被称为最小高度树。给出这样的一个图,写出一个函数找到所有的最小高度树并返回他们的根节点。 格式 该图包含 n 个节点,标记为 0 到 n
阅读全文
摘要:2018-09-09 22:01:02 问题描述: 问题求解: 问题很Interesting,其实本质就是解空间遍历,使用BFS就可以很快的予以解决~
阅读全文
摘要:2018-08-13 11:29:05 一、Convert Sorted Array to Binary Search Tree 问题描述: 问题求解: 二、Convert Sorted List to Binary Search Tree 问题描述: 问题求解: 三、Construct Binar
阅读全文
摘要:2018-08-09 16:01:40 一、Populating Next Right Pointers in Each Node 问题描述: 问题求解: 由于是满二叉树,所以很好填充。 二、Populating Next Right Pointers in Each Node II 问题描述: 问
阅读全文
摘要:2018-07-31 17:47:13 问题描述: 问题求解: 本题要求在不构建二叉树的情况下对先序遍历生成的序列化字符串进行合法性验证,这里有个技巧性较强的验证方法,就是采用当前可用的指针数目进行验证,最初的时候只有一个指针,每当遇到一个节点,那么需要消耗一个指针,同时,如果是非空节点需要额外增加
阅读全文
摘要:2018-07-31 15:46:34 一、插入 Insert into a Binary Search Tree 问题描述: 问题求解: 二、删除 Delete Node in a BST 问题描述: 问题求解:
阅读全文
摘要:2018-07-29 17:42:29 问题描述: 问题求解: 本题是要求寻找一棵树中的重复子树,问题的难点在于如何在遍历的时候对之前遍历过的子树进行描述和保存。 这里就需要使用之前使用过的二叉树序列化的手法,将遍历到的二叉树进行序列化表达,我们知道序列化的二叉树可以唯一的表示一棵二叉树,并可以用来
阅读全文
摘要:2018-07-27 15:55:13 问题描述: 问题求解: 题目中说明了最后的宽度计算其实是按照满二叉树来进行计算的,也就是说如果我们能够得到每层最左边的节点编号和最右边的节点编号,那么本题就可以进行解决了。 另外,在如何编号的问题上,既然是满二叉树,那么编号的方式自然是父节点i,左子节点2 *
阅读全文
摘要:2018-07-26 17:38:37 问题描述: 给定一个二叉树(具有根结点 root), 一个目标结点 target ,和一个整数值 K 。 返回到目标结点 target 距离为 K 的所有结点的值的列表。 答案可以以任何顺序返回。 示例 1: 输入:root = [3,5,1,6,2,0,8,
阅读全文
摘要:2018-06-16 18:53:36 序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。反序列化顾名思义就是通过信息流对对象进行重建的过程。 一般来说序列化和反序列化有如下的作用: 1、以某种存储形式使自定义对象持久化; 2、将对象从一个地方传递到另一个地方。
阅读全文
摘要:2018-05-02 16:26:07 一、拓扑排序 有向无环图(Directed acyclic graph,DAG)必定存在拓扑排序;非DAG没有拓扑排序一说。 二、拓扑排序算法 通常拓扑排序算法可以在O(n)的时间复杂度完成,具体来说是O(V + E)。 下面以leetcode207为例来介绍
阅读全文
摘要:2018-03-13 19:02:13 在图论中,网络流(英语:Network flow)是指在一个每条边都有容量(capacity)的有向图分配流,使一条边的流量不会超过它的容量。通常在运筹学中,有向图称为网络。顶点称为节点(node)而边称为弧(arc)。一道流必须匹配一个结点的进出的流量相同的
阅读全文
摘要:2018-03-10 18:04:55 在图论和计算机科学中,最近公共祖先,LCA(Lowest Common Ancestor)是指在一个树或者有向无环图中同时拥有v和w作为后代的最深的节点。 计算最近公共祖先往往是很有用的,比如在计算树中两个节点的距离的时候,可以分别计算根到各个节点的距离,然后
阅读全文

浙公网安备 33010602011771号