マトリクスのローカル極大値-pythonカード

6945 ワード

題目:与えられたM行N列の整数行列Aは、Aの非境界要素A[i][j]が隣接する上下左右の4要素より大きい場合、要素A[i][j]は行列の局所極大値である.本題では,与えられた行列のすべての局所極大値とその位置を要求する.
入力形式:1行目に行列Aを与える行数Mと列数N(3<=M,N<=20)を入力する.最後のM行は、各行にAのN個の要素の値を与える.数字の間はスペースで区切られています.入力形式:第1行において行列Aを与える行数Mと列数N(3≦M,N≦20)を入力する.最後のM行は、各行にAのN個の要素の値を与える.数値間はスペースで区切られています.
≪出力フォーマット|Output Format|oem_src≫:各行は、「要素値行番号列番号」の形式(スペース間隔に注意)でローカル極大値を出力します.行、列番号は1から開始します.
行番号に従って出力を増加することが要求され、同業者が1つ以上の局所極大値を持っている場合、その行は列番号によって出力を増加する.ローカル極大値がない場合は、「None合計行数合計列数」を出力し、同様にスペース間隔を空けます.
入力サンプル1:4 5 1 1 1 1 1 1 1 3 9 3 1 5 3 1 1 5 5 1 1 1 1 1 1 1
出力サンプル1:9 2 3 5 3 2 5 4
入力サンプル2:3 5 1 1 1 1 9 9 9 1 5 1 1 5 5 1
出力サンプル2:None 3 5
h,l=input().split()#     
list_=[]#   
n=0#    ,      
for i in range(int(h)):#    
    s=input().split()
    list_.append(s)
for i in range(1,int(h)-1):
    for j in range(1,int(l)-1):#    
        if int(list_[i][j])>int(list_[i][j-1]) and int(list_[i][j])>int(list_[i][j+1]) and int(list_[i][j])>int(list_[i-1][j]) and int(list_[i][j])>int(list_[i+1][j]):
            print(list_[i][j],i+1,j+1)
            n=1
if n==0:#n           
    print('None',h,l)


皆さん、何かいい考えがありますか.伝言を歓迎します.