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;
    }
}
相关推荐
SmartBrain1 分钟前
AI算法工程师面试:大模型和智能体知识(含答案)
人工智能·算法·语言模型·架构·aigc
孞㐑¥5 分钟前
算法—哈希表
开发语言·c++·经验分享·笔记·算法
近津薪荼20 分钟前
递归专题(2)——合并链表
c++·学习·算法·链表
Asher阿舍技术站21 分钟前
【数字通信理论系列】四、载波相位同步
算法·载波同步
圣保罗的大教堂21 分钟前
leetcode 3013. 将数组分成最小总代价的子数组 II 困难
leetcode
-Try hard-25 分钟前
队列 | 二叉树
算法
Sagittarius_A*27 分钟前
灰度变换与阈值化:从像素映射到图像二值化的核心操作【计算机视觉】
图像处理·人工智能·opencv·算法·计算机视觉·图像阈值·灰度变换
Nie_Xun36 分钟前
卡尔曼滤波(EKF/IEKF)与非线性优化(高斯-牛顿法)的统一关系
算法
fie88891 小时前
MATLAB中LASSO方法的特征矩阵优化与特征选择实现
开发语言·matlab·矩阵
仰泳的熊猫1 小时前
题目1433:蓝桥杯2013年第四届真题-危险系数
数据结构·c++·算法·蓝桥杯·深度优先·图论