由买买提看人间百态

topics

全部话题 - 话题: 有向图
首页 上页 1 2 3 4 5 下页 末页 (共5页)
P****2
发帖数: 197
1
来自主题: JobHunting版 - G面试题,很难
最短母串,可以有向图TSP
d********i
发帖数: 582
2
来自主题: JobHunting版 - L G 面经,顺求FB onsite 顺利
求G家第一题用有向图实现的代码。。
p*u
发帖数: 136
3
来自主题: JobHunting版 - 帖一个RF的题目求bless
不知道有没有理解错意思,感觉这题目没啥意思。
1,如果是有向图,而且没有重复边
2,如果一定存在这样的节点
直接找到adj matrix的边数为0的节点就是结果了
因为节点有n-1个入度,所以其他所有节点都有边
l*********e
发帖数: 28
4
来自主题: JobHunting版 - 帖一个RF的题目求bless
1. 是有向图。不知道什么叫重复边,但是可能同时存在。
2. 不知道这样的节点是否存在。
f*******w
发帖数: 1243
5
来自主题: JobHunting版 - Tree的traversal也分BFS和DFS?
树就是图的一种啊,为什么不能BFS, DFS
你说说一个树和一个有向图在表现形式上有什么区别?
BFS就是level order
DFS的话可以是inorder, preorder, postorder
g*********e
发帖数: 14401
6

毫不扯淡。
比如你有个有向图,图里每个node都可以是一个小图,你要给这个大图做优化,递归最
好写。
还是这个图,求它的topo order算dependency,就得dfs。
电路里面做静态时序分析,那都是dp。
用位来存储一些数据结构,或者做查找表,节约空间。更抠的还有把flag存到指针低位
d********i
发帖数: 582
7
来自主题: JobHunting版 - 请教一道G家onsite题。。。
请问下题如何用有向图来实现?谢谢。
题目:
printing a tree structure with giving collection of pairs of child> relation. Need to first find the root, and validate wether the given
relations is a valid tree, and then printing.
问题一: 如何判断有valid tree
问题二: 如果print?
例:
给一个set,里面是一堆pair,每个pair里是两个string,一个first,一个second。
如果这堆pair能够构成一个树状结构,按照一定的格式打印这棵树
first-second关系类似paretnt-child关系
eg
set: (a, b) (b, c) (a, d) (d, e) (d, f) (d, g)
树状结构是root = a, root.left = b, root.right = d blah blah
打印结果:[space] 就是一个空格. 1point... 阅读全帖
h*******e
发帖数: 1377
8
来自主题: JobHunting版 - L家onsite面经
俄确实,无向图那么做可以达到O(n^2), 至于有向图, 似乎在第三层二分加速后复
杂度是O(n^2 logn)
s********k
发帖数: 2352
9
来自主题: JobHunting版 - 问一道经典亚麻电面OOD题
设计有向图application. 用户可以创建 线,长方形,圆形,文本。。。 manipulate
them independently - move them, re-size them, etc.
How would you model the representation of the document in an object oriented
language?
classes?
methods?
这个会用到什么设计模式吗?
r******t
发帖数: 250
10
你自己说的问题不准确还敢继续秀?你以为 topological order 是什么?
你知道那个词是哪里来的吗?以你的实力你会的那叫有向图的 topological sort 明白?
t*****9
发帖数: 569
11
来自主题: JobHunting版 - 昨天G面经里的这一题怎么做?
转化成有向图做
n****s
发帖数: 2
12
来自主题: JobHunting版 - 昨天G面经里的这一题怎么做?
先按是否能装下做有向图, 然后拓扑排序。
然后建数组,第k个元素储存,前k个拓扑排序之后箱子的所有最优解,dp
r****7
发帖数: 2282
13
来自主题: JobHunting版 - 求助一面试题
首先这个结果不唯一,而且可能性很多,只能取一个
按位比较然后得到一个字符的有向图然后拓扑排序吧
M******9
发帖数: 10
14
来自主题: JobHunting版 - 我的面试总结(FLGT+UPASD)和伪面经
上面部分没有具体说的题目真心不难,其实Leetcode上的题目真正理解了肯定没问题,
我列下类似方法的题目或者变形(绝大部分对应leetcode上的题目,有些是实际问题背
景,稍微转化下就是了):
One Edit Distance
Binary Search in Rotated Sorted Array
Sqrt, Power using binary search
Regular Expression Matching
LRU
Max number of Points on line
Combination Sum
Decode ways
K-th biggest/smallest number in unsorted stream/array
Log hit类题目
给定一个string,在字典中查找共同前缀最长的单词
判断树是否BST, 是否symmetric, root到最大值节点路径
判断图是否bipartite,判断有向图是否tree
M******9
发帖数: 10
15
来自主题: JobHunting版 - 我的面试总结(FLGT+UPASD)和伪面经
上面部分没有具体说的题目真心不难,其实Leetcode上的题目真正理解了肯定没问题,
我列下类似方法的题目或者变形(绝大部分对应leetcode上的题目,有些是实际问题背
景,稍微转化下就是了):
One Edit Distance
Binary Search in Rotated Sorted Array
Sqrt, Power using binary search
Regular Expression Matching
LRU
Max number of Points on line
Combination Sum
Decode ways
K-th biggest/smallest number in unsorted stream/array
Log hit类题目
给定一个string,在字典中查找共同前缀最长的单词
判断树是否BST, 是否symmetric, root到最大值节点路径
判断图是否bipartite,判断有向图是否tree
w****a
发帖数: 710
16
来自主题: JobHunting版 - 问一道FLAG经典题
1. graph是我实现的一个简单类,链接在这里
http://www.fgdsb.com/2014/12/31/graph/
2. 因为是有向图,需要有方向,所以你的建议是会得出不正确结果的
很高兴你喜欢我的博客
r****7
发帖数: 2282
17
来自主题: JobHunting版 - 问一道Uber的电面题
有向图,带环就invalid,不带环就valid
r****7
发帖数: 2282
18
来自主题: JobHunting版 - 问一道Uber的电面题
有向图,带环就invalid,不带环就valid
b*********e
发帖数: 26
19
来自主题: JobHunting版 - snapchat面经,已挂
最后一题bfs从一个点开始把图里所有点都遍历一遍就好了吧?如果完全遍历就可以,
不能就不可以
如果是有向图的话就用topological sort之类的,应该也是可以在O(N)解决的。
b******i
发帖数: 914
20
来自主题: JobHunting版 - 求教两道FLAG题
不知道是不是serialize tree就行了,还是得把indentation也考虑进去,最后print出
来是一棵pretty print的树。node degree 1就是只有一条边连着其他node的点吧。不
过题目没有说是有向图还是无向图,先假设是无向图吧。
原帖在这里:
http://www.mitbbs.com/article_t/JobHunting/32816677.html
b******i
发帖数: 914
21
来自主题: JobHunting版 - 求教两道FLAG题
看我给的原帖的link,这个没详细说,
我估计图也有可能是无向的,有向图还真不知道准确定义是什么 (入+出 == 1 ?)
r****7
发帖数: 2282
22
来自主题: JobHunting版 - 求教两道FLAG题
2肯定是无向图吧,有向图的话degree 1就没法从一个到别的了
从一个terminator开始找到不同的terminators记下所有的路就可以了

tree
called
single
the
f********a
发帖数: 165
23
来自主题: JobHunting版 - G家关于图的一道题
说是一次party完以后,有的人负责酒水费用有的人负责汽油费用有的人负责。。这样
形成一个有向图的结构,A欠B多少钱,B欠C多少钱,C可能欠A、B分别多少钱,问怎么
reduce/combine到最后形成一些pairs,比如A欠B 20,C欠A20,reduce到最后只需要C
给B20块就行。这个pairs表达的transactions做到最小。
有人说用二分图最大权匹配,还是没有懂到怎么做。。。
i****7
发帖数: 26
24
来自主题: JobHunting版 - G家全部面经
电面1:
顺序统计树,找第K个节点。
电面2:
1)打印000到123所有的数,follow up,打印a到b所有的数(假设每一位都a<=b)
2)Next permutation
3)栅栏N个木片,每一片可以刷两种颜色,相临三片不能同色,问几种刷法。
Onsite:
1)一堆interval,有叠加,给一个值,查询在不在这堆interval里(会调用很多次)
Follow up, 给一个值,查询多少个interval包含这个值(会调用很多次)
(国人大哥面的,可能会看到这个帖子,非常感谢,做题的时候给了很多引导。)
2)一个有向图,找出互相指向的点对数,(e.g. A指向B,B指向A,算一对)
Follow up, 写一个类,这个图会变化(加点,删点,加边,删边),维护这样的
点对数。
Follow up, 扯了扯大数据时候怎么分配到各个计算机上。
3)论文演讲
4)家族树,每个点左右指针指向自己的父亲和母亲,每个点存对应二叉堆的索引。
A)给一个这种树,给每个点标出对应二叉堆的索引值。
B)任意给一个节点(不需要输入根节点),输出这个点所在的层数。... 阅读全帖
A*******e
发帖数: 2419
25
来自主题: JobHunting版 - G家全部面经
2)一个有向图,找出互相指向的点对数,(e.g. A指向B,B指向A,算一对)
Follow up, 写一个类,这个图会变化(加点,删点,加边,删边),维护这样的
点对数。
Follow up, 扯了扯大数据时候怎么分配到各个计算机上。
有向社交图,类似微博找互相关注。
每个节点维护一个关注对象,数组、链表、BST,或散列。
对节点A遍历对象,看对象节点是否指向自己。
加点时不会加边把?这样计数不变。
删点时先查有多少互相关注,减去。
加减边时看情况加减1或不变。
有向社交图分布存储问题。能想到的几点:
1. 互相关注的对象尽量放在一台机器上?互相关注会形成完全图,但完全图太大时还
是得分开。
2. 受关注多的名人分开放,或有镜像,免得一台宕机,多数用户受影响。
还有啥?
r*********r
发帖数: 53
26
来自主题: JobHunting版 - 如何判断一个图中是否有环?
判断图是否有环:
我觉得可以直接用dfs,每一步记录当前访问的node,如果当前访问的node之前被访问
过那么就是有环的。
如果图是有向图,我们还可以用topological sorting 来判断。
L********d
发帖数: 3820
27
来自主题: JobHunting版 - 如何判断一个图中是否有环?
有向图还是无向图?
r*********r
发帖数: 53
28
来自主题: JobHunting版 - 如何判断一个图中是否有环?
空间是省不了的吧……
如果是有向图,那么可以用topological sorting, 时间复杂度会低一些,大概是O(V+E
). 但是空间还是省不了。

呢?
m*********t
发帖数: 527
29
来自主题: JobHunting版 - 贡献一道G家onsite题吧
这东西就是个有向图,而且已经把所有的 edge 给你了。把图建好,然后不管是 DFS 还
是 BFS 都能找到起点到终点的路径(前提是存在)
h**p
发帖数: 211
30
来自主题: JobHunting版 - 贡献一道G家onsite题吧
上面有人说了,总结下2种方法(需要建立有向图)
#1 recursion + back track
设一个set来存所有的edge,走过的就删掉
base case 是当edge为空,此时又刚好到达终点
另一个是当edge为空,此时到达不了终点,或者当前点无路可走。然后返回上一步,换
一条路径
#2 permutation,permute所有线段,然后走一遍检测。优化条件是每段线的头尾是否
是相连
k******a
发帖数: 44
31
来自主题: JobHunting版 - Facebook system design
我觉得这个设计包含两个部分,
1. Object Meta data的storage
2. Friend relationship的管理.
对于1,可以用distributed hash map + memcached解决
对于2,可以参考facebook的TAO设计。就是说维护A-FRIEND-B的GRAPH。对于两个朋友
,使用两个有向边维护。为什么用graph,而不是一般的map设计(比如,A的朋友表示
为A->[B, C, D, ....])?我觉得主要是scale问题。对于facebook这样这么大的用户
量,用户之间联系这么复杂的,使用map引起的写操作和写锁会非常难处理。对于这个
friend的有向图,主要是处理A-FRIEND-B这样的三元组的读写。那么可以使用
distributed hash map+index。并且用cache加速读操作。可以通过直接写cache,
batch写disk得方法解决写速度问题。
剩下的问题就是函数本身。先取Object,看property,如果是friends,查看owner的朋友
是否包含viewer,然后true/false。
为... 阅读全帖
l******s
发帖数: 3045
32
来自主题: JobHunting版 - 面试遇到老印,这算被黑了吗?
第一题是有向图+hashmap
第二题,如果题意理解正确为写函数int possbileAmount(int n) n is the length,
可以DFS或BFS,数学方法肯定可以推导,但恐怕半个小时之内推不出来。
h*********d
发帖数: 1054
33
来自主题: JobHunting版 - graph 表示问题
像有向图
r****7
发帖数: 2282
34
来自主题: JobHunting版 - 问道G的onsite题
借个不就是有向图的dfs嘛
把递归的结果存起来如果递归遇到了指定的index就是要被删的节点。
c*******t
发帖数: 123
35
来自主题: JobHunting版 - 求问一个G家面试题目与图有关。
太棒了!
我相信你是对的。
我思路和你类似,隐约觉得应该把第二个条件按起点和终点分开,做成有向图。
但思路没有继续下去,没想到第二个条件可以拆开成两个子条件。
太感谢了!

A0-
l*3
发帖数: 2279
36
来自主题: JobHunting版 - 请问G这道题目怎么做?
此题可以不用哈密顿回路做。考虑欧拉回路即可。
首先说明一下,这个string的长度就是10003,也就是说每连续4个都是互不相同的4位
数,不会有浪费
构建方法就是:
考虑一个有向图,每个node是一个三位数,edge是四位数,node和node的连接关系是这
样的,我举个例子:
node v = (a, b, c)
其中 0 \le a, b, c \le 9
从这个node出发的edge有:
(a, b, c, 0), 连到 (b, c, 0)
(a, b, c, 1), 连到 (b, c, 1)
....
(a, b, c, 9), 连到 (b, c, 9)
这样每个node都有10个edge-in 10个 edge-out,全图是可以欧拉回路遍历的,遍历走
过的所有边就是你要的sequence
m********e
发帖数: 170
37
来自主题: JobHunting版 - 问一个有向图求路径的问题
类似于 http://www.geeksforgeeks.org/find-paths-given-source-destination/
但是要把所有的cycle也算上,比如在那个网页里
2->0->2->1->3 也算
如果有 2->4->5->2,那么这个loop也得加到目前的每个结果上面
r****l
发帖数: 741
38
来自主题: JobHunting版 - 一道Coding面试题目
看这些例子O(N)可解
俩字典,test1:([test1,test2])
Test2:([test1,test2]),value是同一个list/linkedlist
每加一个Link,看能不能和原来的连起来。其实就是
没法连,连一个,连两个三种情况
while loop就好。连起来的话两个字典要同步更新
每一步还要更新最长List
如果同一个Node可能指向不同的node,就麻烦得多
遍历有向图?

发帖数: 1
39
来自主题: JobHunting版 - 问个最少点遍历有向图的问题
准备一个一维数组存每个点的parent,另外一个一维数组记录是否访问过。
先找in-degree = 0的点,然后dfs,遍历时候记录每个点的parents,记录访问情况
如果是环,任意取一点dfs,同样记录每个点的parents,记录访问情况
最后用union find 找到最终root,然后数不同root的个数。
这样方法是否可行,看到有人说必须用strong-connect component,不知为何,还望举
例说明
r*****s
发帖数: 1815
40
来自主题: JobHunting版 - 问个最少点遍历有向图的问题
没有特别看清楚lz对于环指向环的情况是怎么处理的
感觉这样做下去最终就收敛回强连通了。。

发帖数: 1
41
来自主题: JobHunting版 - 问个最少点遍历有向图的问题
已经更新题目,,

发帖数: 1
42
来自主题: JobHunting版 - 问个最少点遍历有向图的问题
正解。zengqinghan兄还是厉害,吻你

发帖数: 1
43
来自主题: JobHunting版 - 问个最少点遍历有向图的问题
等等,难道这个算出的不是SCC?
1.DFS整个图,按每个点的完成顺序存下每个点。类似拓扑排序
2.按记录顺序的逆序开始DFS整个图,每一个新的起点都是一个root
z*********n
发帖数: 1451
44
来自主题: JobHunting版 - 问个最少点遍历有向图的问题

不是。。。SCC得做transpose graph。。还是叫补图,还是叫反图那个
r*****s
发帖数: 1815
45
来自主题: JobHunting版 - 问个最少点遍历有向图的问题
对啊,这算法不就是SCC吗。。。。


: 等等,难道这个算出的不是SCC?

: 1.DFS整个图,按每个点的完成顺序存下每个点。类似拓扑排序

: 2.按记录顺序的逆序开始DFS整个图,每一个新的起点都是一个root

r*****s
发帖数: 1815
46
来自主题: JobHunting版 - 问个最少点遍历有向图的问题
啊 翻算法导论去了。。。


: 不是。。。SCC得做reverse graph。。还是叫补图,还是叫反图那个


发帖数: 1
47
来自主题: JobHunting版 - 问个最少点遍历有向图的问题
我读书少,zengqinghan兄别骗我……

发帖数: 1
48
来自主题: JobHunting版 - 问个最少点遍历有向图的问题
例子:edges:a->b, b->c, b->d。 a的indegree=0,是dfs的起点
按完成顺序是[c,d,b,a]或者[d,c,b,a]
在按照记录顺序的逆序走一遍,不是还是原来的dfs么?
而且这个方法很像强连通,除了你没有翻转edge的方向。

发帖数: 1
49
来自主题: JobHunting版 - 问个最少点遍历有向图的问题
大概懂你意思了,第一遍dfs遍历,类似于做了个toposort,因为第一遍时候你无法确
定没有visited的点是一个新的起点还是一个在path上的点
第二遍遍历的时候因为已经toposort过了。没有visited的点肯定是一个新的起点。
这个好厉害。。。
z*********n
发帖数: 1451
50
来自主题: JobHunting版 - 问个最少点遍历有向图的问题

是“原来”的DFS,你所谓的“原来”是你根据indegree人脑找出了一个最合理的起
点,其实就是问题的最终解了,这个算法能做出来这个解,不正好说明它是对的么?
但你注意,我这算法里没有算indegree这步,可能我“原来”的dfs起点是c啊,或者是
b啊,你看看结果是不是也是你那个“原来”的dfs
首页 上页 1 2 3 4 5 下页 末页 (共5页)