题解 | #二维数组中的查找#
二维数组中的查找
http://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e
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;
}
}
阿勇算法解集 文章被收录于专栏
对一些基础的,经典的题目的算法题解,每道题的题解尽量做到一题多解,举一反三。其中每一个题解中,若是参考了其他牛人的想法,我会备注出来。