Gegeben eine Matrix mit n Zeilen. Jede Zeile hat die gleiche Anzahl von m Elementen. Die Aufgabe besteht darin, Elemente zu finden, die n-mal horizontal, vertikal und diagonal in der Matrix nacheinander auftreten. Wenn es mehrere solcher Elemente gibt, drucken Sie das kleinste Element. Wenn es kein solches Element gibt,
drucken Sie -1.

Beispiele:

Eingabe: n = 4
 mat [5] [5] 2 1 3 4 5
            3 2 1 3 4
            5 3 2 1 4
            5 4 3 2 1
            5 4 4 3 2
Ausgabe:   1
Eingabe: n = 2
 mat [4] [4] 2 0 5 1
            0 5 3 5
            8 4 1 1
            3 8 5 2
Ausgabe: 0

Implementierung:

def check(l,row,col ,n,l2): 
   
    
    
    for i in range(row - n+1): 
        for j in range(col - n+1): 
              
            
            
            num = l[i][j]  
              
            
            
            
            if(row-i >= n and col-j >= n): 
                count = 0
                  
                
                
                for k in range(n): 
                      
                    
                    
                    if(num != l[i+k][j+k]): 
                        break
                          
                    
                    
                    else: 
                        count += 1
                          
                
                
                if(count == n):  
                    l2.append(num) 
            else: 
                break
       
    
    for i in range(row): 
        for j in range(col - (n-1) ): 
              
            num = l[i][j] 
            count = 0
              
            for k in range(n): 
                  
                if num != l[i][j + k]: 
                    break
                else: 
                    count+=1
                      
            
            
            if(count==n): 
                l2.append(num) 
   
    
    for i in range(row - (n-1)): 
        for j in range(col): 
              
            num = l[i][j] 
            count = 0
              
            for k in range(n): 
                  
                if num != l[i+k][j]: 
                    break
                else: 
                    count += 1
                      
            
            
            if(count == n): 
                l2.append(num) 
   
    
    
    
    
   
    
    for i in range(0, int(row / 2)): 
   
        for j in range(i, col - i - 1): 
          
            
            
            num = l[i][j] 
              
            
            l[i][j] = l[j][col - 1 - i] 
              
            
            l[j][col - 1 - i] = l[row - 1 - i][col - 1 - j] 
              
            
            l[row - 1 - i][col - 1 - j] = l[row - 1 - j][i] 
              
            
            l[row - 1 - j][i] = num 
               
    
    for i in range(row - n+1): 
        for j in range(col - n+1): 
              
            
            
            num = l[i][j] 
              
            
            
            if(row-i >= n and col-j >= n): 
                count = 0
                  
                
                
                for k in range(n): 
                      
                    
                    
                    if(num != l[i+k][j+k]): 
                        break
                      
                    
                    
                    else: 
                        count += 1
                  
                
                
                if(count == n): 
                    l2.append(num) 
            else: 
                break
   
    
    if(len(l2) == 0): 
        print(-1) 
      
    
    
    else: 
        print(min(l2)) 
  
if __name__ == "__main__": 
   
    
    l = [[2, 1, 3, 4, 5], 
        [0, 2, 1, 3, 4], 
        [5, 0, 2, 1, 4], 
        [5, 4, 0, 2, 1], 
        [5, 4, 4, 0, 2]] 
   
    
    
    l2 = [] 
    check(l,4,4,2,l2) 

Ausgabe :

0