如果您想知道不,这不是我的作业,它只是我在网上找到的练习,但我无法理解它。
给你一个 N x M 矩阵,其中只有 1 和 0。 .邻居可以通过数字向上、向下、向左、向下或在对角线上。大多数数字有 8 个邻居,而侧面的有 5 个,四个角上的每个有 3 个。我必须找到等于矩阵中数字的最大邻居数。
问题是,如果不检查矩阵中的每个数字(N x M 检查),我不知道该怎么做。
最佳答案
您无法避免检查矩阵的每个元素。
想想“棋盘”矩阵:
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
暂时忽略边,每个元素有四个相等的邻居。但是如果你否定任何一个元素(将 0 变成 1 或将 1 变成 0),某个位置将有五个相等的邻居。所以如果你想出一个算法,在处理棋盘矩阵时从不查看 r 行和 c 列的元素,那么你肯定会得到这两种可能矩阵之一的错误答案:上面的棋盘矩阵,和棋盘位置 (r,c) 取反。
关于algorithm - 在 N x M 矩阵中找到最大邻居数等于它们在最佳时间的邻居数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42472628/