当前位置: 首页 > news >正文

2023-12-19 LeetCode每日一题(寻找峰值 II)

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.length
  • n == mat[i].length
  • 1 <= m, n <= 500
  • 1 <= mat[i][j] <= 105
  • 任意两个相邻元素均不相等.

四、解题代码

class Solution {
public:vector<int> findPeakGrid(vector<vector<int>>& 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) 二分查找。

http://www.lryc.cn/news/272497.html

相关文章:

  • gin框架使用系列之五——表单校验
  • HackTheBox - Medium - Linux - Interface
  • C++ 字符串操作说明 续
  • [情商-7]:如何回答没有标准答案的两难问题
  • 对偶问题的基本性质
  • Google Chrome 现在会在后台扫描泄露的密码
  • 【Matlab】PSO-BP 基于粒子群算法优化BP神经网络的数据时序预测(附代码)
  • Linux 485驱动通信异常
  • mybatis配置与标签大全
  • Mysql的基本用法(上)非常详细、快速上手
  • 使用Vite创建React + TypeScript(node版本为16.17.0,含资源下载)
  • Springboot集成RabbitMq二
  • 机器学习笔记 - 基于Python的不平衡数据的欠采样技术
  • facebook广告的基础知识
  • java常见面试题:什么是异常?Java中的异常有哪些分类?
  • 类的加载顺序问题-demo展示
  • [蓝桥杯2020国赛]答疑
  • 【AIGC表情prompt】提示词练习技巧
  • SpringBoot项目的三种创建方式
  • 【docker实战】01 Linux上docker的安装
  • Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切(ROI)功能(C#)
  • 软件测试之安全测试
  • 【华为OD机试真题2023CD卷 JAVAJS】会议室占用时间
  • UR5机器人的旋转向量转换到四元数,再从四元数转换到旋转向量python代码
  • MD5--加密原理及代码示例(C#)
  • 理解 RPC 与 Protobuf:完整指南
  • 成为一名合格的前端架构师,前端知识技能与项目实战教学
  • 前端 富文本编辑器原理
  • Java网络编程之IP,端口号,通信协议(UDP,TCP)
  • iOS和iPadOS设备启动到打开App