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

Find and validate immediate neighbors of the given source node of a 2D matrix?

我正在为寻路可视化器开发一个 Javascript 项目,在该项目中我很难找到和验证 2D 矩阵中源节点的直接邻居。

问题陈述:给定一个排序的 4X3 二维矩阵,假设数组=[{1,2,3,4},{5,6,7,8}, {9,10,11,12}] 其中我们必须找到给定数字的直接邻居(左、右、上、下)。 leftright 很容易计算出来,只需要加或减 1,加或减 4 为 bottom[=32] =] 或 up, 但对于最末端的元素。

  • 我们如何验证返回的号码是否是邻居?*

示例:邻居(5) = [ 1,6,9 ] (4 不是邻居)

还有 邻居(7) = [ 3,6,8,11]


         left = source -1 ;
         right = source +1 ;
         top = source - 4 ;
         bottom = source +4;

要生成有效的邻居列表,您必须检查过境

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