240. Search a 2D Matrix II

题意:二维矩阵中行和列都是递增的,在矩阵中查找是否有target。

思路:遍历每一行,在每一行中查找是否有该元素 。

注意:当target比当前行所有元素都大的时候,l=r=m,如果用g[i][l]会超界。

所以要判断边界。

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int n=matrix.length;
        int m=matrix[0].length;
        for(int i=0;i<n;i++){
            int l=0,r=m;
            while(l<r){
                int mid=(l+r)/2;
                if(matrix[i][mid]>=target)r=mid;
                else l=mid+1;
            }
            if(l==m)continue;
            if(matrix[i][l]==target)return true;
        }
        
    return false;
}
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.