在Python中找出矩阵中包含最大值的单元格的程序

假设有一个初始化为 0 的 anxn 矩阵。现在,给出了一个列表,它包含一些包含特定行和列位置的对。对于列表中的每个项目 i,当行号和列号小于列表中项目 i 的行值和列值时,单元格的内容增加 1。在遍历完所有列表元素后,我们必须找出矩阵中包含最大值的单元格数。(行和列索引从 0 开始)

所以,如果输入类似于 input_list = [[3, 5], [4, 6], [5, 3]],那么输出将是 9。假设,它是一个 5 x 6 矩阵。首先矩阵中的值是

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

遍历列表的第一个元素后,它变为 -

1 1 1 1 1 0

1 1 1 1 1 0

1 1 1 1 1 0

0 0 0 0 0 0

0 0 0 0 0 0

遍历列表的第二个元素后,它变为 -

2 2 2 2 2 1

2 2 2 2 2 1

2 2 2 2 2 1

1 1 1 1 1 1

0 0 0 0 0 0

遍历列表的第三个元素后,它变为 -

3 3 3 2 2 1

3 3 3 2 2 1

3 3 3 2 2 1

2 2 2 1 1 1

1 1 1 0 0 0

矩阵中的最大值为 3,有 9 个单元格包含该值。

示例

让我们看看以下实现以获得更好的理解 -

def solve(input_list):

   xpos = 0

   ypos = 0

   for item in input_list:

      if xpos == 0:

         xpos = item[0]

         ypos = item[1]

      else:

         xpos = min(xpos,item[0])

         ypos = min(ypos,item[1])

   return (xpos * ypos)

print(solve([[3, 5], [4, 6], [5, 3]]))

输入

[[3, 5], [4, 6], [5, 3]]
输出结果
9

以上是 在Python中找出矩阵中包含最大值的单元格的程序 的全部内容, 来源链接: utcz.com/z/343673.html

回到顶部