【发布时间】:2017-05-11 13:03:51
【问题描述】:
给定一个长度为n 和m 的数组元素之间的连接的int 数组(每个元素的值都等于它的索引)。将数组划分为 2 部分(部分中的所有元素都必须相对于给定的m 连接未连接)。
如果存在这样的分区,则输出true,否则输出false。
这里有 3 个例子:
-
给定数组:
{0, 1, 2, 3}给定连接:
0-1、2-3(0 连接到 1,2 连接到 3)输出应为:
true(分区为{0,3}、{1,2}) -
给定数组:
{0, 1, 2}给定连接:
1-2、0-1、0-2输出应该是:
false(没有 2 个分区只包含未连接的元素) -
给定数组:
{0,1}给定连接:
0-1输出应该是:
true(分区是{0},{1})
我目前的方法:在数组元素之间形成所有可能的连接并存储它们,从我存储的连接中删除 m 传入连接,检查剩余连接是否形成给定数组的 2 个分区。这个解决方案太慢了(我怀疑建立所有可能的连接需要太多时间)。
【问题讨论】:
-
请阅读How to create a Minimal, Complete, and Verifiable example 并展示您目前编写的代码
标签: java algorithm graph-algorithm