【剑指Offer】3:二维数组中的查找

来源:互联网 发布:ping网络测试 编辑:程序博客网 时间:2024/05/18 16:38

题目:一个m*n的矩阵,从左到右从上到下都是递增的,给一个数x,判断x是否在矩阵中。要求效率尽可能的高。

bool Find(int* array, int rows, int columns, int data){    bool flag = false;    if (array != NULL&&rows > 0 && columns > 0)    {        int row = 0;        int column = columns - 1;        if (data > array[0] && data < array[rows*columns + column])        {            while (row < rows&&column>=0)            {                if (array[row*columns + column] > data)                    --column;                else if (array[row*columns + column] == data)                {                    flag = true;                    return flag;                }                else                    ++row;            }        }    }    return flag;}

ps:这道题一开始想的很简单,直接按照每行每列的最大元素直接比不就好了。。。发现自己太天真了。

还是按照书上的方法写出了代码。