剑指offer-1二维数组中的查找

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

分析:因为每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序,所以从右上角开始比较,目标数大于当前数组元素,就向下走一行,目标数小于当前数组元素,就向左走一列。

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

    }
};

猜你喜欢

转载自blog.csdn.net/m0_37704296/article/details/81281584