力扣1901.寻找峰值II

力扣1901.寻找峰值II

    • 二分每一行 并用函数找出每一行中最大值的下标
    • 若最大值比其下面相邻的元素大 则上方一定存在峰值
    • 若最大值比其下面相邻的元素小 则下方一定存在峰值
cpp 复制代码
  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])};
      }
  };
相关推荐
01_4 分钟前
力扣hot100 ——搜索二维矩阵 || m+n复杂度优化解法
算法·leetcode·矩阵
SylviaW086 分钟前
python-leetcode 35.二叉树的中序遍历
算法·leetcode·职场和发展
篮l球场7 分钟前
LeetCodehot 力扣热题100
算法·leetcode·职场和发展
pzx_00119 分钟前
【机器学习】K折交叉验证(K-Fold Cross-Validation)
人工智能·深度学习·算法·机器学习
BanLul20 分钟前
进程与线程 (三)——线程间通信
c语言·开发语言·算法
qy发大财42 分钟前
分发糖果(力扣135)
数据结构·算法·leetcode
haaaaaaarry1 小时前
【分治法】线性时间选择问题
数据结构·算法
CS创新实验室1 小时前
计算机考研之数据结构:P 问题和 NP 问题
数据结构·考研·算法
OTWOL2 小时前
【C++编程入门基础(一)】
c++·算法
谏君之2 小时前
C语言实现的常见算法示例
c语言·算法·排序算法