html5网站是用什么软件做的吗,小程序开发费用一般多少钱,wordpress 如何移动端,为网站生成rss2023-12-19每日一题
一、题目编号
1901. 寻找峰值 II二、题目链接
点击跳转到题目位置
三、题目描述
一个 2D 网格中的 峰值 是指那些 严格大于 其相邻格子(上、下、左、右)的元素。
给你一个 从 0 开始编号 的 m x n 矩阵 mat #xff0c;其中任意两个相邻格子的值都 不…2023-12-19每日一题
一、题目编号
1901. 寻找峰值 II二、题目链接
点击跳转到题目位置
三、题目描述
一个 2D 网格中的 峰值 是指那些 严格大于 其相邻格子(上、下、左、右)的元素。
给你一个 从 0 开始编号 的 m x n 矩阵 mat 其中任意两个相邻格子的值都 不相同 。找出 任意一个 峰值 mat[i][j] 并 返回其位置 [i,j] 。
你可以假设整个矩阵周边环绕着一圈值为 -1 的格子。
要求必须写出时间复杂度为 O(m log(n)) 或 O(n log(m)) 的算法
示例 1:
示例 2:
提示
m mat.lengthn mat[i].length1 m, n 5001 mat[i][j] 105任意两个相邻元素均不相等.
四、解题代码
class Solution {
public:vectorint findPeakGrid(vectorvectorint mat) {int m mat.size();int low 0, high m - 1;while (low high) {int i (low high) / 2;int j max_element(mat[i].begin(), mat[i].end()) - mat[i].begin();if (i - 1 0 mat[i][j] mat[i - 1][j]) {high i - 1;continue;}if (i 1 m mat[i][j] mat[i 1][j]) {low i 1;continue;}return {i, j};}return {}; // impossible}
};
五、解题思路
(1) 二分查找。