假设我们有一个二维二进制矩阵。在这里,每一行以升序排序,其中0出现在1s之前,我们必须找到最左边的列索引,其值为1。如果没有这样的结果,则返回-1。
所以,如果输入像0001
0011
0011
0010
那么输出将为2,因为第二列在整个矩阵中剩下最多1。
为了解决这个问题,我们将按照以下步骤操作:如果矩阵为空,则返回-1
N:=矩阵的行数
M:=矩阵的列数
i:= 0,j:= M-1
最左边:= -1
当i = 0时,最左边:= j
j:= j-1
我:=我+ 1
如果matrix [i,j]等于0,则
除此以外,
返回最左边
示例class Solution:
def solve(self, matrix):
if not matrix or not matrix[0]:
return -1
N = len(matrix)
M = len(matrix[0])
i = 0
j = M - 1
leftmost = -1
while i = 0:
if matrix[i][j] == 0:
i += 1
else:
leftmost = j
j -= 1
return leftmost
ob = Solution()matrix = [
[0, 0, 0, 1],
[0, 0, 1, 1],
[0, 0, 1, 1],
[0, 0, 1, 0]
]
print(ob.solve(matrix))
输入值[
[0, 0, 0, 1],
[0, 0, 1, 1],
[0, 0, 1, 1],
[0, 0, 1, 0] ]
输出结果2