《剑指Offer》——二维数组查找(Java版)

2018-08-17 09:39:56来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

 

1、在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。

   请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

 

 

2、解题思路

  首先选取数组中右上角的数字。如果该数字等于要查找的数字,查找过程结束;如果该数字大于要查找的数字,剔除这个数字所在的列;

  如果该数字小于要查找的数字,剔除这个数字所在的行。也就是说如果要查找的数字不在数组的右上角,则每一次都在数组的查找范围中剔除一行或者一列,

  这样每一步都可以缩小查找的范围,直到找到要查找的数字,或者查找范围为空。

 

 

 

3、解决代码

 

    public static boolean find(int[][] array,int rows,int colums,int target){
        if (array==null){
            return false;
        }
        //定义启始行数
        //用于从左往右
        int row=0;
        //用于从右往左
        int colum=array.length-1;
        while (row<rows&&colum>=0){
            if (array[row][colum]==target){
                return true;
            }
            if (array[row][colum]>target){
                colum--;
            }else{
                row++;
            }
        }
        return false;
    }

 

 

 

参考文章:https://www.cnblogs.com/edisonchou/p/4737944.html

 github地址:https://github.com/Yahuiya/PersonalNotes

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Java String的简单介绍

下一篇:【jdbc访问数据库获取执行sql转换json】