写出一个高效的算法来搜索 m × n矩阵中的值。
这个矩阵具有以下特性:
- 每行中的整数从左到右是排序的。
- 每行的第一个数大于上一行的最后一个整数
public class Solution { /** * @param matrix: matrix, a list of lists of integers * @param target: An integer * @return: a boolean, indicate whether matrix contains target */ public boolean searchMatrix(int[][] matrix, int target) { // write your code here boolean flag = false; if (matrix == null || matrix.length == 0) { return flag; } int rowNum = -1; int row = matrix.length; for (int i = 0; i < row; i++) { int col = matrix[i].length; if (matrix[i][0] <= target && matrix[i][col-1] >= target) { rowNum = i; break; } } if (rowNum != -1) { for (int j = 0; j < matrix[rowNum].length; j++) { if (matrix[rowNum][j] == target) { flag = true; break; } } } return flag; } }