LeetCode Hot100 74.搜索二维矩阵

题目

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

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

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

方法:该二维矩阵可以看作一个有序的一维数组,然后用二分查找。关键是二维数组的[ i ][ j ]如何转换成一维数组的[ k ]

java 复制代码
class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int m = matrix.length, n = matrix[0].length;
        int left = 0, right = m * n - 1;
        while(left <= right){
            int mid = left + (right - left) / 2;
            int x = matrix[mid / n][mid % n];//重点
            if(x < target)
                left = mid + 1;
            else if(x > target)
                right = mid - 1;
            else
                return true;
        }
        return false;
    }
}
相关推荐
priority_key14 小时前
排序算法:堆排序、快速排序、归并排序
java·后端·算法·排序算法·归并排序·堆排序·快速排序
不染尘.14 小时前
2025_11_7_刷题
开发语言·c++·vscode·算法
来荔枝一大筐15 小时前
力扣 寻找两个正序数组的中位数
算法
算法与编程之美15 小时前
理解Java finalize函数
java·开发语言·jvm·算法
地平线开发者16 小时前
LLM 训练基础概念与流程简介
算法·自动驾驶
点云SLAM16 小时前
弱纹理图像特征匹配算法推荐汇总
人工智能·深度学习·算法·计算机视觉·机器人·slam·弱纹理图像特征匹配
星释16 小时前
Rust 练习册 :Matching Brackets与栈数据结构
数据结构·算法·rust
地平线开发者16 小时前
Camsys 时间戳信息简介
算法·自动驾驶
星释16 小时前
Rust 练习册 :Luhn与校验算法
java·算法·rust
代码雕刻家16 小时前
C语言中关于类型转换不匹配的解决方案
c语言·开发语言·算法