题目:在一个二维数组中,每一行都按照从左到右递增的顺序,每一列都按照从上到下的递增顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断该整数是否在数组中。
举例:
0 1 2 5
2 3 4 7
4 4 4 8
5 7 7 9
首先选取右上角的数字,
若该数字等于要查找的数字,查找过程结束;
若该数字大于要查找的数字,则往左继续查找;
若该数字小于要查找的数字,则往下继续查找。
Java代码实现如下:
public class Finder {
//m行n列,要查找的数字为x
public boolean findX(int[][] mat, int m, int n, int x) {
if (mat == null && mat.length == 0)
return false;
int row = 0;
int col = n - 1;
while(row < m && col >= 0){
if(mat[row][col] == x){
return true;
}
else if(mat[row][col] < x){
row++;
}
else{
col--;
}
}
return false;
}
}