algorithm - 来自子序列部分的序列?

标签 algorithm graph sequence

假设我有以下项目:

 1;2;3;4;5;[1,2];[3,4];[1,2,3];[2,3,4]

(注意:我没有所有可用的排列,只有一部分)

每个项目都有一个与之相关的分数。 现在的任务是从可用部分构建序列:

1,2,3,4,5

有很多方法可以创建序列:

the simplest : 1,2,3,4,5
or : [1,2],[3,4], 5
or : 1,[2,3,4], 5
or : [1,2],[3,4],5
or : ........

正确的序列应该是得分最高的序列。

你会怎么做? 图表?

最佳答案

使用递归过程遍历图形。每个子序列都是一个节点。边连接源节点的末尾整数与目的节点的第一个整数相邻的节点。

例如,您有从 [1] 到 [2] 和 [2, 3, 4] 的边。您还有从 [1, 2] 到 [3] 和 [3, 4] 的边。

这将问题简化为 Dijkstra 算法,通过带加权边的图找到最佳路径。

关于algorithm - 来自子序列部分的序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47147254/

相关文章:

algorithm - 通过删除边(不超过边/2)将图转换为二分图 - 算法?

sql - 使用相同的 currval 重命名其他模式中的序列

string - 删除尽可能少的数字以使数字可以被 3 整除

从列表中定义对的算法

从矩阵中选择点的算法

algorithm - 用于迭代随机非重复序列的生成器

f# - 用 1 个项目创建序列的最佳方法

javascript - 对插件内的字符串进行排序

python - 如何找到覆盖屋顶孔洞所需的最少瓷砖数量

R:线框,如分类变量的 3D 图