题解 | #二维数组中的查找#
二维数组中的查找
http://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e
public class Solution {
public boolean Find(int target, int [][] array) {
//关键是选择从右上角或者左下角开始找。不能从左上角开始找
//这道题中,我选择从右上角开始找
if(array == null || array.length == 0){
return false;
}
for(int i = 0; i < array.length; i++){
int[] inner = array[i];
for(int j = inner.length-1 ; j > -1; j--){
if(target == inner[j]){
return true;
}
else if(target > inner [j]){
//如果找的这个数比当前的还大,证明这一行中没有目标值
//直接跳出本次内循环,去判断下一行的数
break;
}
// 下面这段代码也不用要,因为这种情况的时候就是进行下一次循环
// else if(target < inner [j]){
// continue;
// }
}
}
return false;
}
}
查看10道真题和解析
