java
              复制代码
              
            
          
          class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int n=matrix.length, m=matrix[0].length;
        int row1=0, row2=n-1, col1=0, col2=m-1;
        int row_mid, col_mid;
        while(row1<=row2){
            row_mid = (row1+row2)/2;
            while(col1<=col2){
                col_mid = (col1+col2)/2;
                if(matrix[row_mid][col_mid]==target){
                    return true;
                }
                if(matrix[row_mid][col_mid]>target){
                    col2 = col_mid-1;
                }
                else{
                    col1 = col_mid+1;
                }
            }
            col1=0; 
            col2=m-1;
            if(matrix[row_mid][col2]>=target){
                row2 = row_mid-1;
            }
            else{
                row1 = row_mid+1;
            }
        }
        return false;
    }
}