Find a Peak Element II LeetCode solution in Python
1class Solution:2def findPeakGrid(self, mat: List[List[int]]) -> List[int]:3m, n = len(mat), len(mat[0])4l, r = 0, n5while l <= r:6mid = (l + r) // 27cur_max, left = 0, False8for i in range(m):9if i > 0 and mat[i - 1][mid] >= mat[i][mid]:10continue11if i + 1 < m and mat[i + 1][mid] >= mat[i][mid]:12continue13if mid + 1 < n and mat[i][mid + 1] >= mat[i][mid]:14cur_max, left = mat[i][mid], not mat[i][mid] > cur_max15continue16if mid > 0 and mat[i][mid - 1] >= mat[i][mid]:17cur_max, left = mat[i][mid], mat[i][mid] > cur_max18continue19return [i, mid]20if left:21r = mid - 122else:23l = mid + 124return []