检查矩阵中元素邻居的最佳方法

时间:2018-11-06 07:19:19

标签: algorithm matrix

我得到了一个维度为n x n的矩阵M。

我必须编写一个返回一对x,y的算法,使得Mx,y < min(Mx+1,y, Mx,y+1, Mx−1y, Mx,y−1).

您可以想到的第一个想法当然是获取每个元素,然后逐个检查邻居,以了解这种关系是否正确。但是,从时间复杂度的角度来看,该算法必须是最佳的。这里我不确定如何优化。

有人知道我可以搜索的算法的名称吗?或者可以提供一些指向如何优化该算法的指针?

我已经考虑了一下,我认为也许可以分解该算法以找到矩阵中的最小值?一定能满足上面的关系吗?

1 个答案:

答案 0 :(得分:1)

您正在寻找局部最小值。从矩阵中的某个条目开始,然后转到值较小的相邻条目,很容易找到它。

例如,如果您从(x, y)M[x+1, y] < M[x, y]开始,则从(x+1, y)开始。然后,如果为M[x+1, y-1] < M[x+1, y],则继续进行(x+1, y-1)。重复该操作,直到当前值达到局部最小值,这意味着您将无法再移至相邻的较小值。