【二分查找】LeetCode 240. 搜索二维矩阵 II

题目链接

240. 搜索二维矩阵 II

思路

逐行判断

逐行检查最右侧的元素是否比 target 大,如果比 target 大则对当前行进行二分搜索。

二分矩阵

待完成

代码

逐行判断

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int m = matrix.length;
        int n = matrix[0].length;
        int row = 0;
        while(row < m && target > matrix[row][n - 1]){
            row++;
        }

        while(row < m){
            if(binarySearch(matrix[row], target)){
                return true;
            }
            row++;
        }

        return false;
    }

    private boolean binarySearch(int[] temp, int target){
        int left = 0;
        int right = temp.length;

        while(left < right){
            int mid = (right - left) / 2 + left;
            if(temp[mid] == target){
                return true;
            }else if(temp[mid] < target){
                left = mid + 1;
            }else{
                right = mid;
            }
        }

        return false;
    }
}

二分矩阵

待完成


posted @ 2023-05-14 08:22  Frodo1124  阅读(27)  评论(0编辑  收藏  举报