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

LeetCode 第74题:搜索二维矩阵

给你一个满足下述两条属性的m*n整数矩阵

  • 每行中的整数从左到右按非严格递增顺序排序
  • 每行的第一个整数大于前一行的最后一个整数

给你一个整数target,如果target在矩阵中,返回true;否则返回false。

示例1:

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
输出:true

示例2:

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13
输出:false

提示:

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= m, n <= 100
  • -10的4次 <= matrix[i][j], target <= 10的4次

解题思路:一次二分查找

 若将矩阵每一行拼接在上一行的末尾,则会得到一个升序数组,可以在该数组上二分找到目标元素。

bool searchMatrix(int** matrix,int matrixSize,int* matrixColSize,int target)
{int m = matrixSize,n=matrixColSize[0];int low = 0,high = m*n-1;while(low<high){int mid = (low + high )/ 2 +low;int x=matrix[mid/n][mid%n];if(x<target)  low = mid+1;else if(x>target)   high = mid-1;else  return true;}return false;
}

http://www.xdnf.cn/news/14120.html

相关文章:

  • jQuery.ajax() 方法核心参数详解
  • 从代码学习深度学习 - 子词嵌入 PyTorch版
  • C#最佳实践:为何要统一命名
  • 青少年编程与数学 01-011 系统软件简介 20 编译系统
  • awesome-llm-apps 项目带你探索语言模型的无限可能
  • 自恢复式保险丝如何实现自恢复?
  • 基于Python的TCP应用案例,包含**服务器端**和**客户端**的完整代码
  • frida-android-mod-menu 使用教程
  • LeetCode面试经典150题—旋转数组—LeetCode189
  • c++总结-05-模板与泛型编程
  • 创客匠人视角:知识IP变现的主流模式与创新路径
  • 第十一篇:动态规划(DP)(上)
  • 【算法】基于中位数和MAD鲁棒平均值计算算法
  • 计算机网络-自顶向下—第四章网络层重点复习笔记
  • 薛定谔的猫思想实验如何推演到量子计算
  • Android-Mod-Menu 使用教程
  • Android xml的Preference设置visibility=“gone“ 无效分析解决
  • 【项目实训#08】HarmonyOS知识图谱前端可视化实现
  • 数据结构 学习 栈 2025年6月14日 11点09分
  • IDEA—配置MySQL的驱动程序,引入jar包没有配置不成功问题解决
  • 知识点|MTV模式(Model-template-view)
  • Snipaste:一款简单强大的跨平台截图工具
  • 多线程中SimpleDateFormat为何不安全?如何解决?
  • Python Day50
  • 酷柚易汛ERP 2025-06-12系统升级日志
  • Windows 文件复制利器:ROBOCOPY 拷贝命令指南
  • 聊聊 Glide | 不看源码,只聊设计
  • tp3.1临时连接指定数据库,切片分类in查询,带过滤需要的数据
  • 工业化超声波清洗设备的五大关键特性
  • DeviceNet转PROFINET转换方案:基于S7-1500主站控制欧姆龙CJ2M从站设备