public boolean findNumberIn2DArray(int[][] matrix, int target) {
if(matrix.length == 0) return false;
int x = matrix[0].length - 1;
int y = 0;
boolean flag = false;
while(check(x,y,matrix)){
if(matrix[y][x] > target){
x--;
}
else {
if(matrix[y][x] < target){
y++;
}
else{
flag = true;
break;
}
}
}
return flag;
}
public boolean check(int x,int y,int[][] matrix){
if(x >= 0 && x < matrix[0].length && y >= 0 && y < matrix.length){
return true;
}
return false;
}
’
错因分析
第一,数据来源,默认数组非空。
第二,并列if,与嵌套if 的使用区别。
第三,Java数组的初始化
第四,数组下标的错位