力扣-74-搜索二维矩阵

力扣-74-搜索二维矩阵

思路是:写一个二分查找,然后把一维下标转化为二维下标

注意循环条件<=,可以兼容只有一个元素的情况

index = (left + right) / 2;这里分子加不加 1 都能过

    public boolean searchMatrix(int[][] matrix, int target) {
        int m = matrix.length;
        int n = matrix[0].length;
        int left = 0;
        int right = m * n-1;
        int index, row, col;
        while (left <= right) {
            index = (left + right + 1) / 2;
            row = index / n;
            col = index % n;
            if (target == matrix[row][col]) return true;
            else if (target > matrix[row][col]) {
                left = index + 1;
            } else {
                right = index - 1;
            }
        }
        return false;
    }
posted @ 2026-04-08 20:37  YaosGHC  阅读(3)  评论(0)    收藏  举报