美文网首页程序员
剑指Offer——二维数组中的查找(Java实现)

剑指Offer——二维数组中的查找(Java实现)

作者: Hacker_Jp | 来源:发表于2020-02-25 22:51 被阅读0次

    题目描述

    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
    即类似
    1 2 8 9
    2 4 9 12
    4 7 10 13
    6 8 11 15
    的二维数组。

    用Java编写的查找算法如下:

    public boolean Find(int target, int[][] array) {
            boolean isFound = false;
    
            if (array == null) {
                return isFound;
            }
            int rows = array.length;
            int columns = array[0].length;
            if (rows > 0 && columns > 0) {
                // 从右上角开始计算
                int row = 0;
                int column = array[0].length - 1;
                while (row < rows && column >= 0) {
                    if (array[row][column] == target) {
                        isFound = true;
                        break;
                    } else if (array[row][column] < target) {
                        row++;
                    } else {
                        column--;
                    }
                }
            }
    
            return isFound;
        }
    

    相关文章

      网友评论

        本文标题:剑指Offer——二维数组中的查找(Java实现)

        本文链接:https://www.haomeiwen.com/subject/irdcchtx.html