题目:在一个二维数组中,每一行按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请输入一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数.
public class Test03 {
public static boolean findNum(int [][]a,int rows,int columns,int key){
//rows 与columns表示矩阵的行数与列数
if (a!=null&&rows>0&&columns>0) {
int row=0;//第一行
int colomn=columns-1;//最后一列
while(row<rows&&colomn>=0){//查找比较有没有相同的数
if (a[row][colomn]==key) {
return true;
}else if (a[row][colomn]<key) {
row++;
}else {
colomn--;
}
}
}
return false;
}
public static void main(String[] args) {
int[][] testarray=new int[4][4];
testarray[0][0]=1;
testarray[0][1]=2;
testarray[0][2]=8;
testarray[0][3]=9;
testarray[1][0]=2;
testarray[1][1]=4;
testarray[1][2]=9;
testarray[1][3]=12;
testarray[2][0]=4;
testarray[2][1]=7;
testarray[2][2]=10;
testarray[2][3]=13;
testarray[3][0]=6;
testarray[3][1]=8;
testarray[3][2]=11;
testarray[3][3]=15;
System.out.println(findNum(testarray,3,3,1));
}
}