我正在为寻路可视化工具开发Javascript项目,该项目很难在2D矩阵中查找和验证源节点的直接邻居。
问题陈述:给定排序的4X3 2D矩阵,假设array = [{1,2,3,4},{5,6,7,8},{9,10, 11,12}] 在其中我们必须找到给定数字的直接邻居(左,右,上,下)。只需将底部或向上加或减1,再加或减4,就很容易计算左或右 strong>,但针对极端元素。
示例:邻居(5)= [1,6,9] (4不是邻居)
也 邻居(7)= [3,6,8,11]
left = source -1 ;
right = source +1 ;
top = source - 4 ;
bottom = source +4;
答案 0 :(得分:1)
要生成有效的邻居列表,您必须检查是否有过境通道
col = (source - 1) % width
if (col > 0)
left = source - 1
if (col < width - 1)
right = source + 1
line = (source - 1) / width
if (line > 0)
top = source - width
if (line < height - 1)
bottom = source + width