剑指_Offer
题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
【思路】充分利用这个矩阵的顺序性。
由于从左到右,从上到小递增。那么设一个数一直指向右上角。当目标比较数比这个右上角的数大时,说明整列都比目标数大,列左移。当目标比较数比这个右上角的数小时,说明整行都比目标数小,行下移。知道找到为止。
【代码】
class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
int i,j;
i=0;
j=array[0].size()-1;
while(i<array.size()&&j>-1){
if(target<array[i][j]){
--j;
}
else if(target>array[i][j]){
++i;
}
else if(target==array[i][j]){
return true;
}
}
return false;
}
};