【leetcode热题100】搜索二维矩阵

给你一个满足下述两条属性的 m x 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

解法一 二分法

看到了有序序列,啥都不用想直接二分,只需要考虑到怎么把二分时候的下标转换为矩阵的行、列下标就可以了,很简单,用除法和求余就够了。

public boolean searchMatrix(int[][] matrix, int target) {
    int rows = matrix.length;
    if (rows == 0) {
        return false;
    }
    int cols = matrix[0].length;
    int left = 0;
    int right = rows * cols - 1;
    while (left <= right) {
        int mid = (left + right) / 2;
        int temp = matrix[mid / cols][mid % cols];
        if (temp == target) {
            return true;
        } else if (temp < target) {
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }
    return false;
}

时间复杂度:O ( log ( n ) )。

空间复杂度:O ( 1 )。

相关推荐

  1. LeetCode100】【矩阵搜索矩阵 II

    2024-02-04 11:48:02       15 阅读
  2. leetcodeHOT 240. 搜索矩阵 II

    2024-02-04 11:48:02       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-04 11:48:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-04 11:48:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-04 11:48:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-04 11:48:02       18 阅读

热门阅读

  1. 【leetcode热题100】矩阵置零

    2024-02-04 11:48:02       23 阅读
  2. Keras中内置的预训练模型架构介绍

    2024-02-04 11:48:02       26 阅读
  3. 在ubuntu虚拟机中安装ros2-foxy

    2024-02-04 11:48:02       27 阅读
  4. 【常见的Web前端框架——详细介绍】

    2024-02-04 11:48:02       26 阅读
  5. C/C++的输入输出 | 简单易懂

    2024-02-04 11:48:02       30 阅读
  6. Rsnapshot备份服务器

    2024-02-04 11:48:02       30 阅读
  7. 数据库-计算机三级学习记录-4DBAS功能概要设计

    2024-02-04 11:48:02       26 阅读
  8. C语言中大小写字母的转化

    2024-02-04 11:48:02       25 阅读
  9. c语言大小写转换

    2024-02-04 11:48:02       31 阅读
  10. (c语言版)strlen和sizeof的区别

    2024-02-04 11:48:02       28 阅读