在Python中找到二进制矩阵中最左边的1出现的列索引的程序?

在Python中找到二进制矩阵中最左边的1出现的列索引的程序?

假设我们有一个二维的二进制矩阵。这里每行都按升序排列,0在1之前,我们要找到值为1的最左列索引。如果没有这样的结果,则返回-1。

所以,如果输入如下:

0 0 0 1
0 0 1 1
0 0 1 1
0 0 1 0

那么输出将是2,因为整个矩阵中第二列具有最左边的1。

要解决这个问题,我们将遵循以下步骤:

  • 如果矩阵为空,则
    • 返回-1
  • N:=矩阵的行数
  • M:=矩阵的列数
  • i:=0,j:=M-1
  • leftmost:=-1
  • 当i < N并且j >= 0时,执行以下操作:
    • 如果矩阵[i,j]与0相同,则
      • i:=i + 1
    • 否则,
      • leftmost:= j
      • j:=j – 1
  • 返回leftmost

    更多Python相关文章,请阅读:Python 教程

示例

class Solution:
  def solve(self, matrix):
     if not matrix或not matrix [0]:
        返回-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

     返回leftmost

ob = Solution()
矩阵= [
  [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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程