LeetCode hot100-64-Y

java 复制代码
74. 搜索二维矩阵
给你一个满足下述两条属性的 m x n 整数矩阵:

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

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

尝试写了更快的代码,但是通过不了所有的测试案例。最后写了暴力解法

java 复制代码
class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int r = matrix.length;
        int c = matrix[0].length;
        for(int i=0;i<r;i++){
            for(int j=0;j<c;j++){
                if(matrix[i][j]==target){
                    return true;
                }
            }
        }
        return false;
    }
}

官方解法2还是不错的,把二维数据转换为一维数组,再用常见的二分法优化

java 复制代码
class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int m = matrix.length, n = matrix[0].length;
        int low = 0, high = m * n - 1;
        while (low <= high) {
            int mid = (high - low) / 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;
    }
}

作者:力扣官方题解
链接:https://leetcode.cn/problems/search-a-2d-matrix/solutions/688117/sou-suo-er-wei-ju-zhen-by-leetcode-solut-vxui/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关推荐
点云SLAM4 分钟前
似然函数(Likelihood Function)和最大似然估计
算法·机器学习·概率论·数理统计·最大似然估计·似然函数·概率分布
春日见7 分钟前
Docker中如何删除镜像
运维·前端·人工智能·驱动开发·算法·docker·容器
郝学胜-神的一滴9 分钟前
Python中的with语句与try语句:资源管理的两种哲学
linux·服务器·开发语言·python·程序人生·算法
季明洵13 分钟前
备考蓝桥杯第四天
java·数据结构·算法·leetcode·链表·哈希算法
焦糖玛奇朵婷21 分钟前
就医陪诊小程序|从软件开发视角看实用度✨
java·大数据·jvm·算法·小程序
你撅嘴真丑35 分钟前
求10000 以内的阶乘 与 字符串最大跨距
数据结构·c++·算法
Figo_Cheung36 分钟前
Figo几何基础论:基于集合几何化的统一理论框架与哲学意涵——首次提出“几何化诱导的全息原理”
算法·机器学习·概率论·迭代加深
小y要自律1 小时前
11 string容器 - 子串获取
c++·算法·stl
t198751281 小时前
三相计量芯片RN8302B驱动校正程序设计与实现
算法
期末考复习中,蓝桥杯都没时间学了1 小时前
力扣刷题9
算法·leetcode·职场和发展