leetcode(74)搜索二维矩阵
搜索二维矩阵
解题思路:两次二分法查找
class Solution { public boolean searchMatrix(int[][] matrix, int target) { if(matrix.length==0||matrix[0].length==0){ return false; } int xlen = matrix.length; int ylen = matrix[0].length; int start = 0; int end = xlen - 1; int mid = 0; int start2 = 0; int end2 = ylen - 1; while(start<=end){ mid = (start+end)/2; if(matrix[mid][0]==target){ return true; }else if(matrix[mid][0]>target){ end = mid - 1; }else{ start = mid + 1; } } if(end==-1){ return false; } while(start2<=end2){ mid = (start2+end2)/2; if(matrix[end][mid]==target){ return true; }else if(matrix[end][mid]>target){ end2 = mid - 1; }else{ start2 = mid + 1; } } return false; } }