diff --git a/searches/Peak_Element_on_2D.py b/searches/Peak_Element_on_2D.py index af7b01ec8..2c4a05d42 100644 --- a/searches/Peak_Element_on_2D.py +++ b/searches/Peak_Element_on_2D.py @@ -1,33 +1,36 @@ def find_peak_util(matrix, left, right, row_count): mid_col = (left + right) // 2 - + max_row_index = 0 for i in range(row_count): if matrix[i][mid_col] > matrix[max_row_index][mid_col]: max_row_index = i - - if (mid_col == 0 or matrix[max_row_index][mid_col] >= matrix[max_row_index][mid_col - 1]) and \ - (mid_col == len(matrix[0]) - 1 or matrix[max_row_index][mid_col] >= matrix[max_row_index][mid_col + 1]): + if ( + mid_col == 0 + or matrix[max_row_index][mid_col] >= matrix[max_row_index][mid_col - 1] + ) and ( + mid_col == len(matrix[0]) - 1 + or matrix[max_row_index][mid_col] >= matrix[max_row_index][mid_col + 1] + ): return matrix[max_row_index][mid_col] - - if mid_col > 0 and matrix[max_row_index][mid_col - 1] > matrix[max_row_index][mid_col]: + if ( + mid_col > 0 + and matrix[max_row_index][mid_col - 1] > matrix[max_row_index][mid_col] + ): return find_peak_util(matrix, left, mid_col - 1, row_count) return find_peak_util(matrix, mid_col + 1, right, row_count) + def find_peak(matrix): if not matrix or not matrix[0]: return None return find_peak_util(matrix, 0, len(matrix[0]) - 1, len(matrix)) -matrix = [ - [10, 8, 10, 10], - [14, 13, 12, 11], - [15, 9, 11, 21], - [16, 17, 19, 20] -] + +matrix = [[10, 8, 10, 10], [14, 13, 12, 11], [15, 9, 11, 21], [16, 17, 19, 20]] peak = find_peak(matrix) print(f"Peak element is: {peak}")