Algorithm 在一个nxm矩阵中,找出最大邻域数等于它们在最佳时间内的邻域数
如果你想知道,不,这不是我的家庭作业,只是我在网上找到了一份工作,我无法理解 你会得到一个只有1和0的nxm矩阵。邻居可以按数字向上、向下、向左、向下或对角排列。大多数数字有8个邻居,边上的有5个,四个角上的每个有3个。我必须找到与矩阵中的一个数相等的最大邻域数Algorithm 在一个nxm矩阵中,找出最大邻域数等于它们在最佳时间内的邻域数,algorithm,performance,search,Algorithm,Performance,Search,如果你想知道,不,这不是我的家庭作业,只是我在网上找到了一份工作,我无法理解 你会得到一个只有1和0的nxm矩阵。邻居可以按数字向上、向下、向左、向下或对角排列。大多数数字有8个邻居,边上的有5个,四个角上的每个有3个。我必须找到与矩阵中的一个数相等的最大邻域数 问题是,如果不检查矩阵中的每个数字(N x M检查),我不知道如何执行此操作 您无法避免检查矩阵的每个元素 想象一下“棋盘”矩阵: 暂时忽略边,每个元素都有四个相等的邻居。但是如果你否定任何一个元素(把0变成1或者把1变成0),某个位置
问题是,如果不检查矩阵中的每个数字(N x M检查),我不知道如何执行此操作 您无法避免检查矩阵的每个元素 想象一下“棋盘”矩阵:
暂时忽略边,每个元素都有四个相等的邻居。但是如果你否定任何一个元素(把0变成1或者把1变成0),某个位置会有五个相等的邻居。因此,如果你提出了一种算法,在处理棋盘矩阵时从不查看第r行和第c列的元素,那么你肯定会得到这两种可能矩阵之一的错误答案:上面的棋盘矩阵和位置(r,c)为负数的棋盘。如果“你必须检查每个数字”你必须检查(在最坏的情况下)整个电路板,即N x M检查问题实际上并不是说你必须检查每个数字,它只是说在最佳时间内检查,我会编辑它为什么是“我不知道如何在不检查每个数字的情况下做”问题?@user7416538你反复这么说吗“这个练习说在最佳时间做这就是你认为存在比线性时间更好的东西的原因;但这句话并没有说明线性时间是否最优。你试图通过发现一些次线性的东西并失败来证明线性时间不是最优的;现在我建议你们试着证明线性时间是最优的,看看你们能不能通过这个证明。如果是这样,你就完了;如果不是的话,这将指导你下一次的次线性尝试——或者至少是一个更好的SO问题。
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