本题的解题思路在:
1、首先确定出该数组的行数以及列数;
2、因为该数组有序,让目标数值与每一列最后的值比较;
3、若该值大于第一列最后一行的值,则与下一列最后一行的值比较;否则与第一列的值后退比较(在其他列也是后退比较),直至找到该值返回true;否则遍寻完该数组返回false;
代码如下:
class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
int row=array.size();
int col=array[0].size();
int i=row-1;
int j=0;
while(i>=0&&j<col){
if (target<array[i][j])
i--;
else if(target>array[i][j])
j++;
else
return true;
}
return false ;
}
};