寫出一個高效的算法來搜索 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; } }