有没有一种简单的方法可以在二维数组中找到元素的邻域(即元素周围的八个元素)?除了以不同的组合对索引进行减法和加法,如下所示:
数组[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个或更多单元格)