剑指第二版第4题
第一种方式:暴力破解,整个数组全部进行遍历
class Solution {
public boolean findNumberIn2DArray(int[][] matrix, int target) {
for(int i = 0; i < matrix.length;i++){
for(int j = 0;j < matrix[i].length;j++){
if(matrix[i][j] == target){
return true;
}
}
}
return false;
}
}
第二种方式:我感觉有点类似于二分搜索树,都是对区间进行一个简单的判断
class Solution {
public boolean findNumberIn2DArray(int[][] matrix, int target) {
//这种方式可真的是太妙了啊!
int i = matrix.length - 1;
int j = 0;
while(i >= 0 && j < matrix[i].length){
if(matrix[i][j] > target) i--;
else if(matrix[i][j] < target) j++;
else return true;
}
return false;
}
}