【问题标题】:How to find neighbours with the same value in 2-D array in C?如何在C中的二维数组中找到具有相同值的邻居?
【发布时间】:2020-02-14 21:00:03
【问题描述】:

我有一个尺寸为 NxN 的矩阵,例如在本例中为 5x5:

1 0 1 0 1
0 1 0 1 0
0 0 1 0 1
0 0 1 0 0
1 1 0 1 0

我想获取所有具有相同值的邻居,例如位置 (3,3) 处的元素,并且还获取具有相同值的邻居的邻居等。约束是我不能使用递归,有谁知道如何解决这个问题?

【问题讨论】:

标签: c algorithm multidimensional-array


【解决方案1】:

这可能是最简单的解决方案。 假设对角线不被视为邻居。

for (int i=0; i<N; i++) {
  for (int j=0; j<N; j++) {
    if (i > 0  &&  tab[i][j] == tab[i-1][j]) {
      // same value
    }
    if (i < N-1  &&  tab[i][j] == tab[i+1][j]) {
      // same value
    }
    if (j > 0  &&  tab[i][j] == tab[i][j-1]) {
      // same value
    }
    if (j < N-1  &&  tab[i][j] == tab[i][j+1]) {
      // same value
    }
  }
}

【讨论】:

  • 我不想从矩阵的开头迭代。我需要输入坐标,例如(3,3) 并基于此,我需要在 (3,3) 处找到具有相同值的元素的所有邻居,以及具有相同值的那些邻居的邻居等。
  • @mili1307 然后这样做??有什么问题?
猜你喜欢
  • 1970-01-01
  • 2022-12-01
  • 1970-01-01
  • 2010-10-13
  • 1970-01-01
  • 2017-10-04
  • 2019-10-18
  • 1970-01-01
相关资源
最近更新 更多