对于一个给定的已经排序的二维数组,行按照从大到小的顺序排列,列也按照从大到小的顺序排列,给定一个数字,查看此数是否存在这个数组中,如果存在,则返回true,否则返回false
java代码实现如下,
public class FindNum {
public static void main(String[] args) {
int array[][]= {{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}};
findNum(array, 9);
}
public static boolean findNum(int[][] array, int num) {
boolean flag = false;
int columns=array.length-1;
int row= 0;
while(columns>0 && row < array.length) {
if(array[row][columns]>num) {
columns--;
}else if(array[row][columns]==num) {
flag=true;
System.out.println("存在。位置为:行为:"+(row+1)+"列为:"+(columns+1));
break;
}else {
row++;
}
}
if(!flag) {
System.out.println("不存在此数");
}
return flag;
}
}
代码中,若查到此数,则break;返回第一次出现的位置,只能返回此数字在数组中第一次出现的位置