python 中的最小子矩阵
Smallest Submatrix in python
它包含一个具有唯一数字的 R*C 矩阵。我必须打印具有最小和最大整数的子矩阵
Input:
5 6
73 31 19 10 27 12
82 66 15 23 64 89
17 40 74 41 99 38
46 79 91 28 57 35
94 97 45 55 33 56
Output:
10 27
23 64
41 99
The minimum integer in the matrix is 10
The maximum integer in the matrix is 99
这是我的代码:
a,b=map(int,input().split())
m=[list(map(int,input().split())) for i in range(a)]
pv=min(map(min,m))
ak=max(map(max,m))
def find(e,mat):
for i in range(len(mat)):
for j in range(len(mat[i])):
if mat[i][j]==e:
return [i,j]
我需要一个没有 NumPy 数组的解决方案。
我找到了最大值和最小值以及它们的索引。之后就不知道怎么办了
sort() returns 从最小数到最大数的列表。
getmatzone returns 区域。
def getmatzone(x, y, w, h, mat):
m = []
for y1 in mat[y:h+1]:
m.append(y1[x:w+1])
return m
def sort(mat):
m = []
for y in mat:
for x in y:
m.append(x) # make 1d list
m.sort() # sort
return m
您可以再次遍历矩阵并仅获取您找到的最小和最大坐标区间内的值。
a, b = map(int, input().split())
m = [list(map(int, input().split())) for i in range(a)]
print(m)
pv = min(map(min, m))
ak = max(map(max, m))
def find(e, mat):
for i in range(len(mat)):
for j in range(len(mat[i])):
if mat[i][j] == e:
return [i, j]
def find_matrix(min_cor, max_cor, mat):
res = []
min_i, min_j = min_cor
max_i, max_j = max_cor
#swap if max coordinates is before min
if(min_i > max_i):
min_i,max_i = max_i, min_i
if(min_j > max_j):
min_j,max_j = max_j,min_j
for i in range(len(mat)):
cur_row = []
for j in range(len(mat[i])):
if min_i <= i <= max_i and min_j <= j <= max_j:
cur_row.append(mat[i][j])
if cur_row:
res.append(cur_row)
return res
它包含一个具有唯一数字的 R*C 矩阵。我必须打印具有最小和最大整数的子矩阵
Input:
5 6
73 31 19 10 27 12
82 66 15 23 64 89
17 40 74 41 99 38
46 79 91 28 57 35
94 97 45 55 33 56
Output:
10 27
23 64
41 99
The minimum integer in the matrix is 10
The maximum integer in the matrix is 99
这是我的代码:
a,b=map(int,input().split())
m=[list(map(int,input().split())) for i in range(a)]
pv=min(map(min,m))
ak=max(map(max,m))
def find(e,mat):
for i in range(len(mat)):
for j in range(len(mat[i])):
if mat[i][j]==e:
return [i,j]
我需要一个没有 NumPy 数组的解决方案。
我找到了最大值和最小值以及它们的索引。之后就不知道怎么办了
sort() returns 从最小数到最大数的列表。
getmatzone returns 区域。
def getmatzone(x, y, w, h, mat):
m = []
for y1 in mat[y:h+1]:
m.append(y1[x:w+1])
return m
def sort(mat):
m = []
for y in mat:
for x in y:
m.append(x) # make 1d list
m.sort() # sort
return m
您可以再次遍历矩阵并仅获取您找到的最小和最大坐标区间内的值。
a, b = map(int, input().split())
m = [list(map(int, input().split())) for i in range(a)]
print(m)
pv = min(map(min, m))
ak = max(map(max, m))
def find(e, mat):
for i in range(len(mat)):
for j in range(len(mat[i])):
if mat[i][j] == e:
return [i, j]
def find_matrix(min_cor, max_cor, mat):
res = []
min_i, min_j = min_cor
max_i, max_j = max_cor
#swap if max coordinates is before min
if(min_i > max_i):
min_i,max_i = max_i, min_i
if(min_j > max_j):
min_j,max_j = max_j,min_j
for i in range(len(mat)):
cur_row = []
for j in range(len(mat[i])):
if min_i <= i <= max_i and min_j <= j <= max_j:
cur_row.append(mat[i][j])
if cur_row:
res.append(cur_row)
return res