程序在Python的二进制矩阵中找到最左1的列索引?
假设我们有一个二维二进制矩阵。在这里,每一行以升序排序,其中0出现在1s之前,我们必须找到最左边的列索引,其值为1。如果没有这样的结果,则返回-1。
所以,如果输入像
那么输出将为2,因为第二列在整个矩阵中剩下最多1。
为了解决这个问题,我们将按照以下步骤操作:
如果矩阵为空,则
返回-1
N:=矩阵的行数
M:=矩阵的列数
i:=0,j:=M-1
最左边:=-1
当i<N和j>=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 < N and j >= 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
热门推荐
10 桔梗配什么祝福语简短
11 牛年新年祝福语大全简短
12 女儿婚礼女婿祝福语简短
13 企业跨年元旦祝福语简短
14 化学老师元旦祝福语简短
15 高兴的结婚祝福语简短
16 最酷的毕业祝福语简短
17 老师简短祝福语有哪些
18 红包祝福语简短网名