public class T074 {
public boolean searchMatrix(int[][] matrix, int target) {
if(matrix==null||matrix.length==0||matrix[0].length==0){
return false;
}
int m=matrix.length;
int n=matrix[0].length;
int left=0;
int right=m*n-1;
while(left<=right){
int mid=left+(right-left)/2;
int midData=matrix[mid/n][mid%n];
if(midData>target){
right=mid-1;
}else if(midData<target){
left=mid+1;
}else{
return true;
}
}
return false;
}
public boolean searchMatrix2(int[][] matrix, int target) {
if(matrix==null||matrix.length==0||matrix[0].length==0){
return false;
}
int i=0;
int j=matrix[0].length-1;
while(i<matrix.length&&j>=0){
if(matrix[i][j]>target){
j--;
}else if(matrix[i][j]<target){
i++;
}else{
return true;
}
}
return false;
}
public static void main(String[] args) {
T074 t074 =new T074();
int[][] a=new int[][]{{1,3,5,7},{10,11,16,20},{23,30,36,50}};
boolean b=t074.searchMatrix(a,11);
System.out.println(b);
}
}
LeetCode精选100题——第74题——搜索二维矩阵
最新推荐文章于 2021-03-05 11:56:37 发布