题目:在一个二维数组中,每一行都按照从左到右递增的顺序,每一列都按照从上到下的递增顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断该整数是否在数组中。 举例: 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; }}新闻热点
疑难解答