一、题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
二、思路
数组的每个元素都是依次递增的,先对当前行的最后元素进行比较,如果较大就不需要在当前行进行比较,较小再依次比较,直到找到目标数。
三、代码
class Solution {
public:
bool Find(int target, vector<vector<int> > array)
{
size_t i , j;
for(i = 0; i < array.size(); ++i)
{
for(j = 0; j < array[i].size(); ++j)
{
if(target > array[i][array[i].size() - 1]) //先判断当前行的最后一个元素,当target大于这个元素直接不用依次去比较
{
break;
}
if(array[i][j] == target)
{
return true;
}
}
}
return false;
}
};