美文网首页
LeetCode 第 74 题:搜索二维矩阵

LeetCode 第 74 题:搜索二维矩阵

作者: 放开那个BUG | 来源:发表于2024-04-24 15:37 被阅读0次

1、前言

题目描述

2、思路

思路很简单,就是普通二分查找的思路,先确定行,再确定列,但是细节是魔鬼

3、代码

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        // 先确定在哪一行
        int m = matrix.length, n = matrix[0].length;
        int l = 0, r = m - 1;
        while(l < r){
            int mid = (l + r + 1) / 2;
            if(matrix[mid][0] <= target){
                l = mid;
            }else {
                r = mid - 1;
            }
        }
        int row = r;
        if(matrix[row][0] == target){
            return true;
        }
        if(matrix[row][0] > target){
            return false;
        }

        // 后确定在哪一列
        l = 0;
        r = n - 1;
        while(l < r){
            int mid = (l + r + 1) / 2;
            if(matrix[row][mid] <= target){
                l = mid;
            }else {
                r = mid - 1;
            }
        }

        int column = r;
        return matrix[row][column] == target;
    }
}

相关文章

网友评论

      本文标题:LeetCode 第 74 题:搜索二维矩阵

      本文链接:https://www.haomeiwen.com/subject/xdfmkdtx.html