二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序,请完成一个函数,输入这样的一个二维数组和一个整数,判断数据中是否含有该整数。

思路:因为行从左到右和列从上到下都是递增排序的,所以选择右上角作为起始点和整数进行比较,当大于整数时,说明该整数在起始点的左侧,列--,当小于该整数时,说明该整数在起始点的下方,行++

代码如下:

public static boolean find(Integer matrix[][],int number){
        int rows=matrix.length;//
        int columns=matrix[0].length;//
        boolean find=false;
        if (matrix!=null&&rows>0&&columns>0){
            int row=0;
            int column=columns-1;
            while (row<rows&&column>0){
                if (matrix[row][column]==number){
                    find=true;
                    break;
                }else if (matrix[row][column]>number){
                    --column;
                }else {
                    ++row;
                }
            }
        }
        return find;
    }
原文地址:https://www.cnblogs.com/yeleia/p/9921178.html