題目:在一個二維數組中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。 {{1, 2, 8, 9}, {2, 3, 9, 12}, {4, 7, 10, 13}}
public class TestMethod {
public static void main(String[] args) {
int[][] array = {{1, 2, 8, 9}, {2, 3, 9, 12}, {4, 7, 10, 13}};
System.out.println(method(array, 0));
}
private static boolean method(int[][] arr, int target) {
int row = 0;
int column = arr.length - 1;
while (row < arr.length && column >= 0) {
if (arr[row][column] == target) {
return true;
} else if (arr[row][column] > target) {
column--;
} else {
row++;
}
}
return false;
}
}
解題思路
- 二維數組在內存空間佔用連續的空間,且從左至右從上至下按遞增排序。
複雜度分析