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;
}
}