其实我们只要找到规律,按照一定规则一步一步走就行:
我们可以从右上角开始,将目标和当前数组的数字大小做比较,如果目标小了,将数组中的位置左移,如果大了,就将数组中的位置下移,最后找到或找不到我们要找的目标
代码如下所示:
class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
if(array.size()==0) return false;
if(array[0].size()==0) return false;
int cols=array[0].size();
int rows=array.size();
int col=cols-1, row=0;
while(col>=0 && row<rows){
int num=array[row][col];
if(num==target){
return true;
}else if(num<target){
row++;
}else{
col--;
}
}
return false;
}
};