不知道为什么这道题的难度是中等,我感觉挺简单的。我先遍历行,如果在这一行目标数大于等于行第一个数,小于等于行最后一个数就在这一行里面寻找,否则直接下一行,最后做一下空判断就行。
class Solution {
public boolean findNumberIn2DArray(int[][] matrix, int target) {
int clown = matrix.length;
if(clown == 0)return false;
int row = matrix[0].length;
if(row == 0)return false;
for(int i = 0;i<clown;i++){
int left = matrix[i][0];
int right = matrix[i][row-1];
if(target >= left & target<=right){
for(int j =0;j<row;j++){
if(matrix[i][j] == target)return true;
}
}
}
return false;
}
}