【发布时间】:2013-10-19 00:05:22
【问题描述】:
所以,我有一个 4x4 二维数组(它总是这些尺寸)。从数组上的一个位置开始,一些行和列,我想找到它的所有有效邻居。到目前为止,我的实现非常笨拙。
//add row
if ( !((row + 1) > 3)) {
//do stuff
}
//sub row
if ( !((row - 1) < 0)) {
//do stuff
}
//add col
if ( !((col + 1) > 3)) {
//do stuff
}
//sub col
if ( !((col - 1) < 0)) {
//do stuff
}
... and so on
这是残酷的。当我从知道元素的位置开始时,我觉得我不需要检查每个邻居。有什么想法吗?
【问题讨论】:
-
取决于
//do stuff是什么。可以全部改成一行吗? -
如果一个位置是一个有效的邻居(到达做的东西),它只是将行、列位置添加到列表中。或者更具体地说,创建一个 Location(row,col) 对象,并将其添加到列表中。
-
Unsolicited => 我会尽量让您的代码保持正面;意思是否定你的
!s。例如,if(!((col-1)<0))变为if((col-1)>=0)。