第4章-22.求矩阵的局部极大值 (15分)

给定M行N列的整数矩阵A,如果A的非边界元素[大于相邻的上下左右4个元素,那么就称元素[是矩阵的局部极大值。本题要求给定矩阵的全部局部极大值及其所在的位置。

输入格式:

输入在第一行中给出矩阵A的行数M和列数N(3M,N20);最后M行,每行给出A在该行的N个元素的值。数字间以空格分隔。

输出格式:

每行按照“元素值 行号 列号”的格式输出一个局部极大值,其中行、列编号从1开始。要求按照行号递增输出;若同行有超过1个局部极大值,则该行按列号递增输出。若没有局部极大值,则输出“None 总行数 总列数”。

输入样例1:

4 5
1 1 1 1 1
1 3 9 3 1
1 5 3 5 1
1 1 1 1 1
 

输出样例1:

9 2 3
5 3 2
5 3 4
 

输入样例2:

3 5
1 1 1 1 1
9 3 9 9 1
1 5 3 5 1
 

输出样例2:

None 3 5
 1 # 求矩阵的局部极大值
 2 # Author: cnRick
 3 # Time  : 2020-3-30
 4 matrix = []
 5 m,n = map(int,input().split())
 6 isNone = True
 7 for  i in range(m): #构建矩阵
 8     thisLine = list(map(int,input().split()))
 9     matrix.append(thisLine)
10 for row in range(1,m-1):
11     for col in range(1,n-1):
12         thisNum = matrix[row][col]
13         if thisNum > matrix[row][col-1] and thisNum > matrix[row][col+1]\
14             and thisNum > matrix[row+1][col] and thisNum > matrix[row-1][col]:
15                 print(matrix[row][col],row+1,col+1)
16                 isNone = False
17 else:
18     if isNone == True:
19         print("None {:d} {:d}".format(m,n))

 

 
posted @ 2020-03-30 17:09  cnRicky  阅读(1644)  评论(0编辑  收藏  举报