class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
int row = matrix.length,col = matrix[0].length;
//1.先找到target所在行
int rowIndex = findRow(matrix,target);
if(rowIndex < 0)
return false;
int start = 0,end = col-1;
while(start <= end){
int mid = (start + end) / 2;
if(matrix[rowIndex][mid] == target)
return true;
else if(matrix[rowIndex][mid] < target)
start = mid + 1;
else
end = mid - 1;
}
return false;
}
public int findRow(int[][] matrix,int target){
int row = matrix.length;
int start = 0,end = row-1;
while(start <= end){
int mid = (start + end) / 2;
if(matrix[mid][0] == target)
return mid;
else if(matrix[mid][0] < target)
start = mid + 1;
else
end = mid - 1;
}
return end;
}
}
leetcode74. 搜索二维矩阵
最新推荐文章于 2024-07-18 01:11:27 发布