是否有一种简单的方法来查找二维数组中某个元素的邻居(即,元素周围的八个元素)?缺少只是以不同的组合减去和增加索引,像这样:
array[i-1][i] array[i-1][i-1] array[i][i-1] array[i+1][i]
… 等等。
(伪代码)
row_limit = count(array); if(row_limit > 0){ column_limit = count(array[0]); for(x = max(0, i-1); x <= min(i+1, row_limit); x++){ for(y = max(0, j-1); y <= min(j+1, column_limit); y++){ if(x != i || y != j){ print array[x][y]; } } } }
当然,这几乎要花费原始硬编码解决方案的许多行,但是通过这一解决方案,您可以最大程度地扩展“邻居”(2-3个或更多单元格)