随笔分类 -  Graph - 图

Surrounded Regions (130)
摘要:1. BFS 时间 O(n*m) 空间 O(1) 1. 把所有的O标记为‘1’ 2. 从四周向内看把标记为‘1’的变回'O' -> 时间O(n+m) 3. 把没有在2步骤中变化的‘1’变‘X’->时间O(n*m) ->时间O(n*m + n +m) 此方法比Union find要快 2. union 阅读全文

posted @ 2018-09-06 13:05 葫芦胡同749 阅读(100) 评论(0) 推荐(0)

Redundant Connection (684)
摘要:此题是明显的Union Find的问题。 和Mini Spining tree相似, 如果加入的新边使得原有的数据形成了环(就是union的结果是有相同的父亲)。说明这个边不应该加入 首先还是套路写一个Union Find的class 主函数调用 阅读全文

posted @ 2018-09-06 11:37 葫芦胡同749 阅读(74) 评论(0) 推荐(0)

Number of Islands(200)
摘要:总而言之 BFS的方法对于静态的图的联通块问题比较好解 Union Find 解决动态的图的联通块的问题 1. BFS TIME: O(MxN) Space: O(min(M,N)) because in worst case where the grid is filled with lands, 阅读全文

posted @ 2018-08-31 13:04 葫芦胡同749 阅读(114) 评论(0) 推荐(0)

Graph Valid Tree(261)
摘要:本题为Union Find的问题 判断一些边是不是tree有3个要素 1. 边的个数是不是点的个数-1; 2. 每个边加入都不可以成环; (加入边时做check) 3. 所有边都加入后,边必须都相连; (所有边都加入后看看union的个数) 首先定义UnionFind的class。 定义接口 主函数 阅读全文

posted @ 2018-08-31 11:46 葫芦胡同749 阅读(116) 评论(0) 推荐(0)

207. Course Schedule 210. Course Schedule II
摘要:拓扑排序的问题 套路: 1. 初始化所有的节点的入度为零。 2. 遍历给定的输入要求。 维护一个indegree 的表。记录每个节点的入度。 维护map, 每个节点的后续节点 3. 得到这两个表以后开始用queue遍历所有入度为零的点。 4. **如何判断最终结果? 由于我们开始初始化了所有节点入度 阅读全文

posted @ 2018-08-27 14:00 葫芦胡同749 阅读(99) 评论(0) 推荐(0)

269.Alien dictionary 外星字典
摘要:public String alienOrder(String[] words) { //because the char has a topological order, we record how many char to current char // a (b ,c, d) after it // b (c ,d ) after it ... 阅读全文

posted @ 2018-08-27 10:10 葫芦胡同749 阅读(112) 评论(0) 推荐(0)

导航