找到最大的交叉对角线

时间:2013-09-07 07:12:27

标签: algorithm matrix diagonal

这是一个采访问题:

给定n×m位的矩阵找到矩阵中形成的最大X并返回该X的对角线的大小.X被定义为2个大小相等的对角线,它们共享一个1。

例如,矩阵:

00100001
00010010
00001100
00001100
00010010
00100001

返回大小为1,因为给定的X无效,因为中间部分不共享单个1.另一方面,以下矩阵

101
010
101

将返回值3,因为对角线为3.编写此类程序。

我理解第一个解决方案here,但我想知道是否有更有效的方法来解决这个问题。想法?

1 个答案:

答案 0 :(得分:2)

关于时间复杂性,没有渐近更好的解决方案。一个较弱的问题是检查矩阵是否包含任何1个单元格。对于这个问题,你显然你必须访问每个单元格,它给你O(nxm)。现在这是原始问题的下限,它也有O(nxm)。 QED。