二维数组中的查找

标签: 算法 查找 数组
7人阅读 评论(0) 收藏 举报
分类:

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

时间限制:1秒 空间限制:32768K
规律:
首先选取数组中右上角的数字。如果该数字等于要查找的数字,则查找过程结束;如果该数字大于要查找的数字,则剔除这个数字所在的列;如果该数字小于要查找的数字,则剔除这个数字所在的行。

优化前:

public static boolean Find(int target,int[][] array){
        boolean flag=false;
        for(int i=array.length-1;i>=0;i--){
            for(int j=array[0].length-1;j>=0;j--){
                if(target==array[i][j]){
                    flag=true;
                    return flag;
                }
            }
        }
        return flag;
    }

优化后:

public static boolean Find(int target,int[][] array){
        boolean flag=false;
        int row=0;
        int col=array[0].length-1;
        while(row<array.length&&col>=0){
            if(target>array[row][col]){
                row++;
            }else if(target<array[row][col]){
                col--;
            }else if(target==array[row][col]){
                flag=true;
                return flag;
            }
        }
        return flag;
    }

运行时间:147ms
占用内存:18016k

查看评论

从二维数组中查找某个元素

题目:有一个二维数组,二维数组的每一行从左到右数据递增,二维数组的每一列,从上到下递增。在这样的二维数组中查找指定元素,返回其下标。 思路:首先将待查找的元素q与二维数组的右上方的元素e进行...
  • xiaoyi357
  • xiaoyi357
  • 2017-04-08 18:53:24
  • 1209

在二维数组中查找元素

在二维数组中查找元素
  • StoryMonster
  • StoryMonster
  • 2016-10-05 16:58:50
  • 1794

二维数组中某一元素的查找

/* 面试例题3:二维数组中某一元素的查找 :在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,...
  • liyf__88
  • liyf__88
  • 2017-05-19 16:32:34
  • 519

【C++】二维数组中的查找

一个二维数组,每一行右边的都比左边的大,每一列下面的都比上面的大。 完成一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数 先从一般的情况推导: 例如要在下面的数组中查找7 1...
  • michellechouu
  • michellechouu
  • 2015-08-06 13:48:03
  • 828

二维数组中的查找(LeetCode: 74. Search a 2D Matrix)

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数....
  • yanglingwell
  • yanglingwell
  • 2017-04-10 10:27:26
  • 1220

2.二维数组中的查找(python和java实现)

题目:在一个二维数组中,每一行都是按照从左到右递增的顺序排序,每一列都是安装从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中书否含有该整数。...
  • john_bh
  • john_bh
  • 2017-03-08 16:35:52
  • 254

二维数组中的查找 C++

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 代码:class Solu...
  • noc_lemontree
  • noc_lemontree
  • 2016-07-11 16:31:45
  • 710

[Java]二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。《剑指offer面试题3》 ...
  • liqiang1251976772
  • liqiang1251976772
  • 2016-05-09 23:27:42
  • 1601

二维数组中的查找(C语言)

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

JAVA实现二维数组中的查找(《剑指offer》)

最近在刷《剑指offer》里的编程题,但是网上关于《剑指offer》的解答多半是C或者C++的,而且官方(作者)也是在用C++进行讲解,这里自己用java写了一些题目的解答代码(当然也有部分是借鉴了网...
  • qq_15062527
  • qq_15062527
  • 2015-10-01 14:24:34
  • 1431
    个人资料
    持之以恒
    等级:
    访问量: 6111
    积分: 758
    排名: 6万+
    文章存档