通过仅在Python中交换相应的值来检查是否有可能使两个矩阵严格增加

假设我们有两个大小为nxm的矩阵,分别为mat1和mat2。我们仅在两个矩阵中的两个元素都位于(i,j)位置时,才通过交换不同矩阵中的两个元素来检查这两个矩阵在哪里严格增加。

所以,如果输入像

71
5
1
6
1
0
1
4
9
81
7

然后输出将为True,因为我们可以交换(7,14)和(10,17)对以使其严格增加。

1
4
1
5
1
6
1
7
79
81
0

示例

让我们看下面的实现以更好地理解-

def solve(mat1, mat2):
   row = len(mat1)
   col = len(mat1[0])
   for i in range(row):
      for j in range(col):
         if mat1[i][j] > mat2[i][j]:
            mat1[i][j], mat2[i][j]= mat2[i][j], mat1[i][j]
   for i in range(row):
      for j in range(col-1):
         if mat1[i][j]>= mat1[i][j + 1] or mat2[i][j]>= mat2[i][j + 1]:
            return False
   for i in range(row-1):
      for j in range(col):
         if mat1[i][j]>= mat1[i + 1][j] or mat2[i][j]>= mat2[i + 1][j]:
            return False
   return True
mat1 = [[7, 15],
         [16, 10]]
mat2 = [[14, 9],
         [8, 17]]
print(solve(mat1, mat2))

输入值

[[7, 15],
[16, 10]],
[[14, 9],
[8, 17]]
输出结果
True

猜你喜欢