查找并验证2D矩阵给定源节点的直接邻居?

时间:2020-02-28 07:37:24

标签: javascript arrays algorithm sorting adjacency-matrix

我正在为寻路可视化工具开发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;

enter image description here

1 个答案:

答案 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