leetcodeSolution 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;
5 while (beg <= end) {
6 int maxi = 0, mid = beg + (end - beg) / 2;
8 for (int i = 0; i < mat.size(); i++) {
9 maxi = mat[i][mid] >= mat[maxi][mid] ? i : maxi;
10 }
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];
15 if (!isLeft && !isRight)
16 return {maxi, mid};
17 else if (isRight)
18 beg = mid + 1;
19 else
20 end = mid - 1;
21 }
23 return {-1, -1};
24 }
25 };