【leetcode】240(Medium)Search a 2D Matrix II

提交代码

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
    	if(matrix==null||matrix.length==0||matrix[0].length==0)	return false;
    	int m=matrix.length,n=matrix[0].length;
    	if(target<matrix[0][0]||target>matrix[m-1][n-1])	return false;
    	
    	int p1,p2,mid;
    	for(int i=0;i<m;i++) {
    		if(matrix[i][0]>target)	return false;
    		if(matrix[i][n-1]<target)	continue;
    		
    		p1=0;p2=n-1;
    		while(p1<=p2) {
    			mid=(p1+p2)/2;
    			if(matrix[i][mid]==target)	return true;
    			else if(target<matrix[i][mid])
    				p2=mid-1;
    			else
    				p1=mid+1;
    		}
    	}
    	return false;
    }
}

运行结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/AXIMI/article/details/90550351