在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数
?
1.查找的过程,本质是排除的过程
2.是的,一次排除一行或者一列
3.临界条件
?
?
#include <asm-generic/errno.h>
class Solution {
public:
bool Find(int target, vector<vector<int> >& array) {
// write code here
int i=0; //表示哪一行
int j=array[0].size()-1;//定位到右上角,第一行数组大小-1是下标
while(i<array.size() && j>=0)//控制结束条件,不要越界
{
if(target < array[i][j])//要找的那个数比右上角的数小,说明不在这一列
{
j--;
}
else if(target > array[i][j])//要找的那个数比右上角的数大,说明不在这一行
{
i++;
}
else
{
return true;
}
}
return false;
}
};