二分查找法,二维矩阵中的元素是有序的,从左上角到右下角的方向上增大,因此,其副对角线上的值基本上说没一条主对角线上元素的中间值,那么,从右上角向左下角搜索并调整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;
    }
};