剑指Offer面试题3:二维数组中的查找

来源:互联网 发布:js保留三位小数 编辑:程序博客网 时间:2024/05/01 16:53

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