思路:可以从数组右上角或从左下角开始查找,从右上角开始查找时,定义两个变量分别表示数组的X轴和Y轴,如果数组元素大于要查找的元素,则Y轴减一,如果数组元素小于要查找的元素时,则X轴加一。
public class JZ {
public static void creatArr() {
int[][] arr = new int[4][];
arr[0] = new int[]{1, 2, 3};
arr[1] = new int[]{4, 5, 6};
arr[2] = new int[]{7, 8, 9};
arr[3] = new int[]{10, 11, 12};
doFind(arr, 20);
}
public static void doFind(int[][] arr, int num) {
int X = 0;
int Y = arr[0].length - 1;
while (X < arr.length && Y >= 0 && arr[X][Y] != num) {
if (arr[X][Y] > num) {
--Y;
} else {
++X;
}
}
if (X == arr.length || Y == arr[0].length) {
System.out.println("没找到");
} else
System.out.println(X + " " + Y);
}
public static void main(String[] args) {
creatArr();
}
}