首页 > 解决方案 > 从二维数组中查找不同大小的相邻元素

问题描述

所以我正在尝试创建一个程序,该程序在二维数组中找到所有具有给定邻域大小的相邻元素。我已经想出了如何从中间元素的角度找到 8 个相邻元素,但是说我想找到 24 个相邻元素并且我正在寻找解决方案。

我已经尝试将数字 1 设置为可以更改的变量,但是如果我将其设置为 2,它仍然找不到 24 个元素的所有邻居。

我对 8 个元素的解决方案,如果有办法扩展它:

array[i-1][j-1]
array[i-1][j]
array[i-1][j+1]

array[i][j-1]
array[i][j+1]

array[i+1][j-1]
array[i+1][j]
array[i+1][j+1]

标签: javaarraysmultidimensional-arrayneighbours

解决方案


这就是我尝试将 -range 设置为 +range 和边框的方法。但由于某种原因,它似乎仍然没有返回正确的结果。

int neighbourhoodSize = neighbourhoodSize/2; //Say size is t.ex. 11, has to be odd for rectangle
for (int k = 0; k < neighbourhoodSize; k++) {
    for (int i = k; i < arr.length - k; i++) {
        for (int j = k; j < arr[i].length - k; j++) {
            arr[i - k][j - k]
            arr[i - k][j]
            arr[i - k][j + k]
            arr[i][j - k]
            arr[i][j + k]
            arr[i + k][j - k]
            arr[i + k][j]
            arr[i + k][j + k]
        }
    }
}

推荐阅读