Add files via upload

This commit is contained in:
Hariharan 2024-10-15 19:40:42 +05:30 committed by GitHub
parent eeeb9ab48a
commit 03adefc12a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -0,0 +1,33 @@
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]):
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]:
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]
]
peak = find_peak(matrix)
print(f"Peak element is: {peak}")