题解 | #二维数组中的查找#TOP18
思路:
1.二分法,从矩阵右上角开始,如果这个数比target大,那么target位于该数下面,行数向下偏移,即增加。反之如果小,那说明这个数在当前数的左边,列数减小,即列数减1
2.注意行数和列数不要搞错了,矩阵行数等于数组array.length,列数等于array[0].length
public boolean Find(int target, int [][] array) {
if(array == null ||array.length == 0 || array[0].length == 0){
return false;
}
//
int cols = array[0].length;
int rows = array.length;
int i = 0, j = cols-1;
while(i < rows && j >= 0){
if(target == array[i][j]){
return true;
}else if(target > array[i][j]){
i++;
}else{
j -- ;
}
}
return false;
}
}
面试必刷TOP101 文章被收录于专栏
面试必刷TOP101