使用Python在按行和按行排序的矩阵中计算负数?

在本节中,我们将看到一个python程序,该程序以最佳解决方案对按行和按列排序的矩阵中的负数进行计数。

按行和按列排序的数组意味着,任何索引处的每个值都小于或等于下一列和下一行中的索引处的值。 

例如在下面的矩阵M中

M = [[-40, -12, 1, 5],
[-20, -2, 5, 15],
[-22, -1, 13, 18],
[-12, 0, 15, 38]]

在上面的矩阵M中,第一行的第一列是-40,它小于同一行中下一列的值(即-12),并且也小于同一列中下一行的值,即-20,所以上。

例子2

# The matrix must be sorted in ascending order. If not, the algorithm will not work properly
matrix = [
   [-40, -12, 1, 5],
   [-20, -2, 5, 15],
   [-22, -1, 13, 18],
   [-12, 0, 15, 38]]
# To obtain the number of row
rowCount = len(matrix)
columnCount = 0

# To obtain the number of column
for i in matrix[0]:
   columnCount += 1
   a = 0
   b = 0
   count_Of_Negative_Integer = 0
while a < rowCount and b < columnCount:
   if matrix[a][b] >= 0:
      a += 1
      b = 0
   else:
      count_Of_Negative_Integer += 1
   b += 1
print("Count of Negative Integers in sorted Matrix is: ",count_Of_Negative_Integer)

结果

Count of Negative Integers in sorted Matrix is: 7

在上面的程序中

  • > = 0:首先,我们尝试查找小于0的负整数的计数。

  • 因为在上面的程序中,我们试图获取负整数,但是,可以使用同一程序来查找小于任何特定整数(n)的整数计数。例如,使用> 5查找小于或等于5的整数计数。