我需要从矩阵中的 1
所在位置开始,找到移动到达 2
时需要移动的空间数 (上, 左, 右, 下
)。同时,您可以沿着矩阵的一侧绕回到另一侧。因此,下面的示例应返回2,因为需要先向左移动1,然后向下移动1。我完全陷入了困境。
var ARR = [
[0, 0, 0, 0],
[1, 0, 0, 0],
[0, 0, 0, 2],
[0, 0, 0, 0]
],
ONE, TWO;
for (x in ARR) {
for (y in ARR[x]) {
if (ARR[x][y] == 1) {
ONE = [x, y];
}
if (ARR[x][y] == 2) {
TWO = [x, y];
}
}
}
document.body.innerHTML = Math.abs(ONE[0] - TWO[0]) - Math.abs(ONE[1] - TWO[1]);