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

74、搜索二维矩阵

题目:

解答:

两次二分查找即可。如果出现down=-1,说明matrix[0][0]<target 那么所有数都小于target,return false即可。

第一次闭区间查找,最后upper=down+1,在down这一行查找即可。

如果出现upper越界,也就是down指向最后一行,只能说明matrix[m][0]>target,并不能说明最后一行所有数都大于target

第二次二分查找,如果没找到,循环结束后return false,否则找到时return true。

class Solution {
public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int m = matrix.size();int n = matrix[0].size();int upper = 0,down = m-1,left=0,right=n-1;while(upper<=down){int mid = upper+(down-upper)/2;if(matrix[mid][0]==target)return true;else if(matrix[mid][0]<target)upper = mid + 1;elsedown = mid - 1;}if(down == -1) return false;while(left<=right){int mid = left+(right-left)/2;if(matrix[down][mid]==target)return true;else if(matrix[down][mid]<target)left=mid+1;else right=mid-1;}return false;}
};

时间复杂度O(log(mn))

空间复杂度O(1)

http://www.dtcms.com/a/282485.html

相关文章:

  • Python+Tkinter制作音频格式转换器
  • PDF 转 Word 支持加密的PDF文件转换 批量转换 编辑排版自由
  • lua(xlua)基础知识点记录
  • 非控制器(如 Service、工具类)中便捷地获取当前 HTTP 请求的上下文信息
  • SQL,在join中,on和where的区别
  • HTTP性能优化实战
  • GeoTools 基础概念解析
  • 5-Nodejs-npm与第三方模块
  • smolagents - 如何在mac用agents做简单算术题
  • 导入无人机航拍屋顶,10分钟智能铺设光伏板
  • 基于 Drools 的规则引擎性能调优实践:架构、缓存与编译优化全解析
  • MySQL 8.0 OCP 1Z0-908 题目解析(28)
  • 项目学习笔记 display从none切换成block
  • AWS ML Specialist 考试备考指南
  • 自学中医笔记(一)
  • AWS WebRTC 并发 Viewer 拉流失败分析:0.3 秒等待为何如此关键?
  • 线上分享:解码eVTOL安全基因,构建安全飞行生态
  • 【docker】将本地镜像打包部署到服务器上
  • 逆功率检测设备防逆流解决方案守护电网安全
  • JavaScript中将JSON对象转换为URL参数格式的字符串
  • java工具类Hutool
  • Python day15
  • pip包报错
  • Java全栈面试实录:从电商支付到AIGC的深度技术考察
  • Thymeleaf 流程控制与迭代详解
  • WebStorm vs VSCode:前端圈的「豆腐脑甜咸之争」
  • 基于JAVA Spring Boot物理实验考核系统设计与实现 (文档+源码)
  • 入门华为数通,HCIA/HCIP/HCIE该怎么选?
  • 如何删除 VSCode 账号的远程同步备份记录数据
  • 大模型-AI生成视频零基础启蒙:从0到1制作AI视频