在二维数组中寻找邻域

有没有一种简单的方法可以在二维数组中找到元素的邻域(即元素周围的八个元素)?除了以不同的组合对索引进行减法和加法,如下所示:

数组[i-1][i]
阵列[i-1][i-1]
数组[i][i-1]
数组[i+1][i]

。。。等等

(伪代码)

行限制=计数(数组);
如果(第行限制>0){
列_limit=count(数组[0]);
对于(x=max(0,i-1);x<=min(i+1,行限制);x++){
对于(y=max(0,j-1);y<=min(j+1,列限制);y++){
如果(x!=i | | y!=j){
打印阵列[x][y];
}
}
}
}

当然,这几乎需要与原始硬编码解决方案一样多的行数,但使用此解决方案,您可以尽可能多地扩展“邻域”(2-3个或更多单元格)

发表评论