問題の説明:2次元配列(各1次元配列は同じ長さ)で、各行は左から右への昇順で並べ替えられ、各列は上から下への昇順で並べ替えられます。関数を完成させ、そのような2次元配列と整数を入力し、配列に整数が含まれているかどうかを判断してください。
package hgy.java.arithmetic;
public class FindNumFromDeArray {
public static boolean find(int target, int [][] array) {
int row = array.length;//行
int column = array[0].length;//列
//System.out.println(row+" "+column);
//从左下角到右上角查询
int i = row-1;
int j = 0;
System.out.println(i + " " + j);
while(i>=0&&j<column){
if(array[i][j]==target)
return true;
else if(array[i][j]>target)
i--;
else if(array[i][j]<target)
j++;
System.out.println(i + " " + j);
}
return false;
}
public static void main(String[] args) {
int [][]arr = {{1,2,3,5,6},{2,4,5,7,9},{4,5,6,8,9}};
//System.out.println(Arrays.deepToString(arr));
//打印二维数组
for(int[]a:arr){
for(int aa:a)
System.out.print(aa+" ");
System.out.println();
}
System.out.println(find(9,arr));
}
}