discuss里面的方法,最先把坐标放在格子的右上角。
如果当前格子比target小,那么就把col往左移动,因为已经是排好序了的,所有右边的都比它大
如果当前格子比target大,就把row往下移,因为上面行的都比它小
否则(即相等),就返回true;
1 public boolean searchMatrix(int[][] matrix, int target) { 2 if(matrix.length == 0 || matrix[0].length == 0) { 3 return false; 4 } 5 int row = 0; 6 int col = matrix[0].length - 1; 7 while(row < matrix.length && col >= 0) { 8 if(target == matrix[row][col]) { 9 return true;10 } else if(target < matrix[row][col]) {11 col--;12 } else {13 row++;14 }15 }16 return false;17 }