Skip to content

Latest commit

 

History

History
30 lines (21 loc) · 711 Bytes

File metadata and controls

30 lines (21 loc) · 711 Bytes

Loop and Append to List

def saddle_points(matrix):
    if not matrix:
        return []

    if any(len(row) != len(matrix[0]) for row in matrix):
        raise ValueError("irregular matrix")

    else:
        row_maxima = []
        column_minima = []
        results = []

        for row in matrix:
            row_maxima.append(max(row))

        for column in zip(*matrix):
            column_minima.append(min(column))
            
        for idx, value in enumerate(matrix[0]):
            for index, value in enumerate(matrix):
                if row_maxima[index] == column_minima[idx]:
                    results.append({'row': index+1, 'column': idx+1})

        return results