7得票1回答
如何以最快的方式找到两个不同集合中符合某些条件的坐标之和?

我有以下两个集合。找到每个集合中的一个坐标,使它们的和至少为H,最佳方法是什么。 A = {(x1,y1), (x2,y2),....(xn,yn)} B = {(p1,q1), (p2,q2),....(pn,qn)} 如果答案是(x1,y1)和(p1,q1),那么它应该满足 x1+p...

54得票11回答
如何在广度优先搜索中跟踪深度?

我有一棵树作为广度优先搜索的输入,我想知道算法在进行时处于哪个层级?# Breadth First Search Implementation graph = { 'A':['B','C','D'], 'B':['A'], 'C':['A','E','F'], ...

19得票11回答
图的直径算法?

如果你有一个图,需要找到它的直径(即两个节点之间的最大距离),如何在O(log v * (v + e))复杂度内实现。 维基百科上说可以使用Dijkstra算法和二叉堆来实现。但我不明白这是如何工作的,有人能解释一下吗? 或者展示一个伪代码?

8得票2回答
寻找最小生成树的所有关键边

我从Robert Sedgewick的算法书中得到了这个问题。 关键边。一个最小生成树边,如果从图中删除它将导致MST权重增加,则称为关键边。请展示如何在时间上与E log E成比例地找到图中的所有关键边。注意:此问题假设边权不一定不同(否则MST中的所有边都是关键边)。 请提出解决此问题...

9得票1回答
是否有一种算法可以“简化”依赖图?

我的问题非常简单,但我不知道它的名称,因此很难自己找到解决方案:如何简化依赖关系图,例如(其中->表示依赖): A -> B -> C & A -> C 变成: A -> B -> C

21得票4回答
深度优先搜索和广度优先搜索各自的优势是什么?

我已经学习了两种图遍历算法:深度优先搜索和广度优先搜索。由于这两种算法都用于解决图遍历问题,因此我想知道如何在它们之间进行选择。我的意思是,在特定情况下,是否有一种算法比另一种更有效,或者选择其中一种的任何原因? 谢谢。

20得票2回答
在矩阵中获得相邻的1所需的最小翻转次数

给定二进制矩阵(值为0或1),相邻的1表示“山丘”。另外,给定一些数字k,则找到至少需要翻转0的最小数量,以形成大小为k的山丘。 编辑: 为了澄清,相邻表示左右上下邻居。 对角线不算作相邻。例如, [0 1 0 1] 是大小为2的一个山丘, [0 1 1 0] 定义了大小为1的2个...

22得票16回答
检查给定的字符串是否符合给定的模式

我的朋友刚刚在 Google 面试时被拒绝了,因为他不能给出这个问题的解决方案。 我自己也要在几天后面试,但似乎无法想出解决方法。 以下是问题: 给定一个模式,例如 [a b a b]。还给定一个字符串,例如 "redblueredblue"。我需要编写一个程序来告诉我字符串是否遵循给定的模...

27得票2回答
旅行售货员问题中的方向限制

我正在尝试按照路径顺序对一组三维坐标进行排序。一个示例:points = np.array([[ 0.81127451, 0.22794118, 0.52009804], [ 0.62986425, 0.4546003 , 0.12971342],...

10得票2回答
图值传播算法

我有一个有向图 (N, A),其中每个节点 n[i] 都有一个值 v[i] 和一个阈值 t[i]。对于每个箭头 (n[i], n[j]),都满足不等式关系 v[i] <= v[j]。我需要有效地实现以下操作: increaseThreshold(i, x):将 t[i] 的值设为 m...