力扣1901.寻找峰值II
-
- 二分每一行 并用函数找出每一行中最大值的下标
- 若最大值比其下面相邻的元素大 则上方一定存在峰值
- 若最大值比其下面相邻的元素小 则下方一定存在峰值
-
class Solution {int indexmax(vector<int> &a){return max_element(a.begin(),a.end()) - a.begin();}public:vector<int> findPeakGrid(vector<vector<int>>& mat) {int l = 0,r = mat.size() - 1;while(l < r){//行int i = l + r >> 1;//列int j = indexmax(mat[i]);if(mat[i][j] > mat[i+1][j]) r = i;else l = i + 1;}return {l,indexmax(mat[l])};}};