//在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,
// 每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,
// 判断数组中是否含有该整数。
package com.company;
public class Main {
public static boolean find(int target,int[][] array){
int rows = array.length;
int cols = array[0].length;
int i = rows-1;
int j = 0;
while(i>=0 && j<cols){
if(target<array[i][j]){
i--;
}
else if(target>array[i][j]){
j++;
}
else{
return true;
}
}
return false;
}
public static void main(String[] args) {
int[][]my_array1 ={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
for(int i=0;i<my_array1.length;i++){
for(int j=0;j<my_array1[i].length;j++){
System.out.print(my_array1[i][j]+" ");
}
System.out.println();
}
if(find(6,my_array1))
{
System.out.println("Y");
}
else
System.out.println("N");
}
}
思路就是一开始选取数组的左下角,当选择的是左下角的数字a时,如果判断数b比它大,那么该数字b就应该在b的右侧,如果比它小,就在上侧。