使用二分查找,对于这种二维数组的二分查找,我们可以从右上角或者坐下开始,这里以右上角为例: 如果右上角的值大于要查找的值,那么肯定最后一列的值都大于,我们可以缩小查找范围到前面的列;如果右上角的值小于要查找的值,可以肯定这一行的值都小于,可以缩小查找范围到下面列。重复上面步骤,知道找到数据或者数组遍历完成。

    public boolean Find(int target, int [][] array) {
        int i=0;
        int j=array[0].length-1;
        while(i<array.length&&j>=0){
            if(array[i][j]>target){
                j--;
            }else if(array[i][j]<target){
                i++;
            }else{
                return true;
            }
        }
        return false;
    }
}