解题思路:
先找到在哪一行 再找在哪个位置
提交代码:
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
if(matrix.length==0||matrix[0].length==0) return false;
if(matrix[0][0]>target||matrix[matrix.length-1][matrix[0].length-1]<target)
return false;
int mid,p1=0,p2=matrix.length-1,p3=0,p4=matrix[0].length-1;
while(p1<=p2) {
mid=(p1+p2)/2;
if(matrix[mid][0]==target) return true;
if(matrix[mid][0]<target) p1=mid+1;
else p2=mid-1;
}
while(p3<=p4) {
mid=(p3+p4)/2;
if(matrix[p2][mid]==target) return true;
if(matrix[p2][mid]<target) p3=mid+1;
else p4=mid-1;
}
return false;
}
}
运行结果:

本文详细介绍了一种在二维矩阵中搜索特定元素的算法。通过分解问题为行和列的搜索,提高了搜索效率。文章首先确定目标元素所在的行,然后在该行中进行二分查找,最终实现快速定位。
618

被折叠的 条评论
为什么被折叠?



