二分查找法,二维矩阵中的元素是有序的,从左上角到右下角的方向上增大,因此,其副对角线上的值基本上说没一条主对角线上元素的中间值,那么,从右上角向左下角搜索并调整i,j的位置。
class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
int n=array.size();
int m=array[0].size();
for(int i=0,j=m-1; i<n && j>=0;){
if(array[i][j]==target) return true;
if(array[i][j]>target) j--;
else i++;
}
return false;
}
};