[LintCode] 28. Search a 2D Matrix

public boolean searchMatrix(int[][] matrix, int target) {
       if(matrix == null || matrix.length == 0) return false;
       if(matrix[0] == null || matrix[0].length == 0) return false;
       int m = matrix.length;
       int n = matrix[0].length;
       int row = -1;
       for(int i=0;i<m;i++){
           // find which line
           if(matrix[i][0] <= target && matrix[i][n - 1] >= target){
               row = i;
               break;
           }
       }
       if(row == -1) return false;
       // loop through that line
       for(int i=0;i<n;i++){
           if(matrix[row][i] == target){
               return true;
           }
       }
       return false;
    }

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325506689&siteId=291194637