二维数组的查找

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

#include <iostream>

using namespace std;
bool Find(int *maxtrix,int rows,int columns,int number)
{
bool res=false;
int row=0;
int column=columns-1;
while(row<rows&&column>=0)
{
if(maxtrix[row*column+column]==number)
{
res=true;
break;
}
else if(maxtrix[row*column+column]>number)
{
++row;
}
else
--column;
}
return res;
}
int main()
{
int a[]={1,2,8,9,2,4,9,12,4,7,10,13,6,8,11,15};
bool t=Find(a,4,4,20);
cout<<t;


system("pause");
    return 0;

}


或者

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        int rows=array.size();
        int columns=array[0].size();
        bool res=false;
        if (array.empty())
            return false;
        int row=0;
        int column=columns-1;
        while(row<rows&&column>=0)
        {
            if (array[row][column]==target)
            {
                res=true;
                break;
            }
            else if (array[row][column]<target)
                ++row;
            else 
                --column;
        }
        return res;
    }
};

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页