给定一个相等维度的二维数组(即nxn)只包含0和1,我如何找到(忽略matrix [i] [i])第i行包含全0和第i列这一切都是1。如果不存在这样的i,则返回-1。
matrix [i] [i]可以有任何东西。
预期时间复杂度为O(n)
例如
对于给定的4 x 4矩阵
1 1 0 0
0 1 0 0
1 1 0 1
0 1 0 0
答案是1(i基于零),因为第2行全部为0,第2列全部为1(忽略[1,1]处的值)。
答案 0 :(得分:4)
首先,这样的矩阵只有1或0个答案。
例如,你在索引i的行或列中出去,你应该验证我是答案。答案是i或-1。
当每个动作处理1行或1列时,操作总量将为n + n,要验证所需的答案需要按1行和1列行走它将消耗n + n个动作,我们总共有4 * n个动作这是< strong> O(n)复杂性。
步行示例:
0 0 0 1 S S S S S S
S S S 1 S S S S S S
S S S 0 0 0 1 S S S
S S S S S S 1 S S S
S S S S S S 1 S S S
S S S S S S 1 S S S
S S S S S S 1 0 0 0 X
S S S S S S S S S S
S S S S S S S S S S
S S S S S S S S S S
您应该验证7的答案。
答案 1 :(得分:0)
让我们得到一些理论:
如果存在一个全列(忽略对角线),则最多可以有一行全为零。
相反,如果存在全零行,则最多只能有一个全列。
这使得问题基本上是线性的。
答案 2 :(得分:-3)
解决方案是:
return -1
因为如果某些行全部为零,而某些列全部为全部,那么它们将在它们相交的单元格中会是什么?