algorithm - 在 N x M 矩阵中找到最大邻居数等于它们在最佳时间的邻居数

标签 algorithm performance search

如果您想知道不,这不是我的作业,它只是我在网上找到的练习,但我无法理解它。

给你一个 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/

相关文章:

c# - 如果 A* 算法探索了不止一条路径,你如何选择最好的一条?

javascript - (Laravel) 预取数据库数据中的实时搜索

c# - 如何搜索多维数组?

c++ - 现代处理器(如i7)会在遍历指针列表时跟随指针并预取其数据吗?

search - 如何强制对Elasticsearch “terms”查询进行not_analyzed

javascript - 获取数组中元素的所有组合

python高效的子串搜索

python - 构建最小堆的 Python 实现

javascript - 获取两个 XML 树之间差异的算法(JS 或伪代码)

android - Phonegap VS 类固醇。我选对了吗?