【LeetCode】74 搜索二维矩阵——二分查找
题目描述:
给你一个满足下述两条属性的 m x n 整数矩阵:
每行中的整数从左到右按非严格递增顺序排列。
每行的第一个整数大于前一行的最后一个整数。
给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。
方法效率
//二分查找
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
int m= matrix.length;
int n=matrix[0].length;
int il=0;
int ir=m-1;
int im=0;
int jl=0;
int jr=n-1;
int jm=0;
while(il<=ir&&jl<=jr){
im=(il+ir)/2;
jm=(jl+jr)/2;
if(matrix[im][jm]==target){
return true;
} else if (matrix[im][jm]<target) {
if(matrix[im][jr]<target){
il=im+1;
}else{
il=im;
jl=jm+1;
}
} else{
if(matrix[im][0]>target){
ir=im-1;
}else{
ir=im;
jr=jm-1;
}
}
}
return false;
}
}