【问题标题】:Using ArrayList to get two dimensional array data使用ArrayList获取二维数组数据
【发布时间】:2013-01-10 04:57:31
【问题描述】:

我的输入是一个由 0 和 1 组成的文本文档网格,然后我将其放入一个二维整数数组中。

我的目标是“映射”网格中的 1。我必须确定有多少组 1,每组有多少,并创建一个带有 1 组标签的输出文本。

例如,我在文本中收到以下内容:

1 0 1 0 0 1 0
1 1 1 0 1 1 0
1 0 0 0 1 0 0
0 0 1 0 0 0 1
0 0 1 1 1 1 1

我总共有三个组,然后必须像这样吐出来:

1 0 1 0 0 2 0
1 1 1 0 2 2 0
1 0 0 0 2 0 0
0 0 3 0 0 0 3
0 0 3 3 3 3 3 

在进行递归时,我创建了一个二维整数 ArrayList,可扩展到组和组成员。我之前认为如果我只是将第二组的所有“成员”更改为 2,那么它们应该在原始二维数组中更改,因为数组是通过引用传递的。

我错了吗?如果还需要提供任何其他信息,请告诉我。

提前致谢。

编辑:如果使用 ArrayList.contains() 函数,我似乎有一个问题,如果它包含一个实际的“1”而不是它是否包含 int[][] array[0][1] .

谢谢!

【问题讨论】:

    标签: java recursion multidimensional-array arraylist pass-by-reference


    【解决方案1】:

    对我来说听起来很像区域标签算法。也许this 会有所帮助

    【讨论】:

    • 是的,就是这样。这是8连接版本。不过,我正在尽我所能把它自己弄下来,我认为它会帮助我学得更好。
    • 基本上你必须从左上角开始并为 8 个邻居中的每一个调用该函数,如果其中一个匹配,则将其添加到队列中,稍后再查看它的 8 个邻居...当没有进一步的匹配时,您 ++ 标签并从原始数组中的下一个值开始。那里可能有很多实现,但是如果您将所有值逐一检查,那么自己做起来并不难。
    猜你喜欢
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多