第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))

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM