(牛客网)二维数组中的查找

来源:互联网 发布:java.lang.long 编辑:程序博客网 时间:2024/05/21 06:33

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

解题思路:

拿target和二维数组右上角比较

(因为数组右上角的数是同行最大的结束,是同列最小的开始)

如果右上角小于target那么说明这一行都小于target所以可以排除这一行

如果右上角大于target,则说明这一列都大于target可以排除一列

class Solution {public:    bool Find(int target, vector<vector<int> > array) {        int i=0;        int j=array[0].size()-1;        int len=array.size()-1;        while(i<=len && j >=0){            if(array[i][j]==target)                return true;            if(array[i][j]<target)                i++;            else                j--;        }        return false;    }};
原创粉丝点击