0

通常,当我使用联合查找时,我会创建一个一维数组,并使用其在数组中的位置初始化每个索引处的值。因此,对于一个 5 元素数组,每个元素都将具有与其索引 ( ) 相同的值0-4

如果我使用联合查找具有多个维度的数据结构,则变得更加困难。假设我有一个 10x10 站点的网格,每个站点最初都是关闭的(一个多维数组,每个索引都有 value -1)。我的实现提供了一种打开站点的方法,您可以在其中指定数组的维度。open(4, 3)将转到第 4 行并打开网格上的第 3 个站点。如果我要打开这个网站,我会给索引什么值,以及如何?

我在想我给它相对于第一个站点的位置的独特价值。因此,位置处的站点(4, 3)将被赋予值 43(向下 4 行,每行 10 个站点 + 右侧三个站点)。但这需要遍历每个站点并计算每个元素以获取将存储的值,即O(n). 我可以将4and转换3为字符串并将它们组合起来,但这是一个讲座的练习,我认为这不是他们希望我们做的。

此外,在网格上连接两个站点时,我遇到了同样的问题。如何确定代表连接的值而不通过大多数数组来查找它们的索引?

有没有更好的方法来做我正在尝试的事情?

4

0 回答 0