Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- int findidx(vector<int> &v){
- int n = v.size();
- int max_element = INT_MIN, max_idx = -1;
- for(int i = 0; i < n; ++i) {
- if(max_element < v[i]) {
- max_element = v[i];
- max_idx = i;
- }
- }
- return max_idx;
- }
- vector<int> findPeakGrid(vector<vector<int>>& mat) {
- int rows = mat.size();
- int cols = mat[0].size();
- vector<int> temp;
- int l = 0, r = rows - 1;
- while(l < r) {
- int m = (l + r + 1);
- m/=2;
- int max_idx = findidx(mat[m]); // want maximum element index
- if(mat[m][max_idx] < mat[m - 1][max_idx]) {
- r = m - 1;
- }
- else {
- l = m;
- }
- }
- int ans_idx = findidx(mat[l]);
- temp.push_back(l);
- temp.push_back(ans_idx);
- return temp;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement