题解 | #二维数组中的查找#
二维数组中的查找
https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e
借鉴:菩提旭光
(太牛了,必须记录一下)
首先我们选择从左下角开始搜寻,(为什么不从左上角开始搜寻,左上角向右和向下都是递增,那么对于一个点,对于向右和向下会产生一个岔路;如果我们选择从左下脚开始搜寻的话,如果大于就向右,如果小于就向下)。
public boolean Find(int target, int [][] array) {
int len = array.length - 1;
int i = 0;
while((len >= 0) && (i < array[0].length)){
if(array[len][i] > target){
len --;
}else if(array[len][i] < target){
i++;
}else{
return true;
}
}
return false;
}