1. 程式人生 > 實用技巧 >二維陣列中的查詢

二維陣列中的查詢

在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。

 1 /*二維陣列查詢*/
 2     public boolean findNumberIn2DArray(int[][] matrix, int target) {
 3         /*matrix.length指的是行數*/
 4         if ((matrix == null || matrix[0].length == 0) || (matrix.length == 1 && matrix[0].length == 0)) {
5 return false; 6 } 7 int i = 0; // 8 int j = matrix[0].length - 1; // 9 while (i <= matrix.length && j >= 0) { 10 if (matrix[i][j] == target) { 11 return false; 12 } else if (target < matrix[i][j]) {
13 j--; 14 } else { 15 i++; 16 } 17 } 18 return false; 19 }

public boolean findNumberIn2DArray(int[][] matrix, int target) {
/*matrix.length指的是行數*/
if ((matrix == null || matrix[0].length == 0) || (matrix.length == 1 &&
matrix[0].length == 0)) {
return false;
}
int i = 0; //
int j = matrix[0].length - 1; //
while (i <= matrix.length && j >= 0) {
if (matrix[i][j] == target) {
return false;
} else if (target < matrix[i][j]) {
j--;
} else {
i++;
}
}
return false;
}