leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

1901.cpp (750B)


0 class Solution { 1 public: 2 vector<int> findPeakGrid(const vector<vector<int>> &mat) const { 3 int beg = 0, end = mat[0].size() - 1; 4 5 while (beg <= end) { 6 int maxi = 0, mid = beg + (end - beg) / 2; 7 8 for (int i = 0; i < mat.size(); i++) { 9 maxi = mat[i][mid] >= mat[maxi][mid] ? i : maxi; 10 } 11 12 bool isLeft = mid - 1 >= beg && mat[maxi][mid - 1] > mat[maxi][mid]; 13 bool isRight = mid + 1 <= end && mat[maxi][mid + 1] > mat[maxi][mid]; 14 15 if (!isLeft && !isRight) 16 return {maxi, mid}; 17 else if (isRight) 18 beg = mid + 1; 19 else 20 end = mid - 1; 21 } 22 23 return {-1, -1}; 24 } 25 };