leetcode(74)搜索二维矩阵

搜索二维矩阵

解题思路:两次二分法查找

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        if(matrix.length==0||matrix[0].length==0){
            return false;
        }
        int xlen = matrix.length;
        int ylen = matrix[0].length;
        int start = 0;
        int end = xlen - 1;
        int mid = 0;
        int start2 = 0;
        int end2 = ylen - 1;
        while(start<=end){
            mid = (start+end)/2;
            if(matrix[mid][0]==target){
                return true;
            }else if(matrix[mid][0]>target){
                end = mid - 1;
            }else{
                start = mid + 1;
            }
        }
        if(end==-1){
            return false;
        }
        while(start2<=end2){
            mid = (start2+end2)/2;
            if(matrix[end][mid]==target){
                return true;
            }else if(matrix[end][mid]>target){
                end2 = mid - 1;
            }else{
                start2 = mid + 1;
            }
        }
        return false;  
    }  
}

 

posted @ 2019-07-30 19:37  海平面下的我们  阅读(139)  评论(0编辑  收藏  举报