搜索二维矩阵

题目链接

搜索二维矩阵

题目描述


注意点

  • 每行中的整数从左到右按非严格递增顺序排列
  • 每行的第一个整数大于前一行的最后一个整数
  • 1 <= matrix.length, matrix[0].length <= 100

解答思路

  • 先二分查找找到target所处的行,找到行后再二分查找找到target所处的列即可

代码

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int row = matrix.length;
        int col = matrix[0].length;
        int top = 0, bottom = row - 1;
        while (top <= bottom) {
            int rowMid = (top + bottom) / 2;
            if (matrix[rowMid][0] > target) {
                bottom = rowMid - 1;
            } else if (matrix[rowMid][col - 1] < target) {
                top = rowMid + 1;
            } else {
                int left = 0, right = col - 1;
                while (left <= right) {
                    int colMid = (left + right) / 2;
                    if (matrix[rowMid][colMid] == target) {
                        return true;
                    }
                    if (matrix[rowMid][colMid] > target) {
                        right = colMid - 1;
                    } else {
                        left = colMid + 1;
                    }
                }
                return false;
            }
        }
        return false;
    }
}

关键点

  • 二分查找的思想
  • 如果target介于某一行的最小值和最大值之间,且在该行没有找到target,说明二维矩阵中肯定没有target

相关推荐

  1. 74.搜索矩阵

    2024-03-23 06:24:03       54 阅读
  2. 搜索矩阵【二分】

    2024-03-23 06:24:03       41 阅读
  3. 74. 搜索矩阵

    2024-03-23 06:24:03       36 阅读
  4. 74. 搜索矩阵

    2024-03-23 06:24:03       30 阅读
  5. 74. 搜索矩阵

    2024-03-23 06:24:03       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-23 06:24:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-23 06:24:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-23 06:24:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-23 06:24:03       20 阅读

热门阅读

  1. 蓝桥杯每日一题:统计子矩阵

    2024-03-23 06:24:03       19 阅读
  2. Ubuntu中安装VSCode的一个指令

    2024-03-23 06:24:03       21 阅读
  3. 如何利用开源的大模型框架进行实际项目开发

    2024-03-23 06:24:03       23 阅读
  4. 前端根据pdf连接点击下载pdf而不是直接打开

    2024-03-23 06:24:03       21 阅读
  5. Hive常用函数 之 数值处理

    2024-03-23 06:24:03       19 阅读
  6. android AMS的面试题目

    2024-03-23 06:24:03       22 阅读
  7. Flink 架构深度解析

    2024-03-23 06:24:03       20 阅读
  8. webpack proxy工作原理?为什么能解决跨域?

    2024-03-23 06:24:03       27 阅读
  9. 新概念英语1:Lesson7内容详解

    2024-03-23 06:24:03       16 阅读
  10. vim | 安装 vimspector 调试神器

    2024-03-23 06:24:03       17 阅读