public class Solution {

public boolean Find(int target, int [][] array) {
    if(array==null || array.length==0 || array[0].length==0)
        return false;
    int len = array.length, size = array[0].length;
    //灵活搜索
    int row=0, col=size-1;
    while(row<len && col>=0){
        if(array[row][col]==target)
            return true;
        else if(array[row][col]<target)
            row++;
        else{
            /*
            这里写的复杂了,看官方题解后才发现只写col--就可以了
            for(int j=col-1;j>=0;--j){
                if(array[row][j]>target)
                    continue;
                else if(array[row][j]==target)
                    return true;
                else{
                    break;
                }
            }
            row++;
            */
            col--;
        }
    }
    
    /*
    暴力搜索 时间复杂度O(n*2)
    for(int i=0;i<len;++i){
        for(int j=0;j<size;++j){
            if(array[i][j] == target)
                return true;
        }
    }
    */
    return false; 
}

}