74 Search a 2D Matrix

Java

将原先二维矩阵转换成一维的响亮进行处理,实现二分搜索。

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        if(matrix.length == 0)
            return false;
        int rowCount = matrix.length;
        int colCount = matrix[0].length;
        int left = 0;
        int right = rowCount * colCount - 1;
        while(left < right){
            int mid = left + (right - left) / 2;
            int row = mid / colCount;
            int col = mid % colCount;
            if (target == matrix[row][col]) 
                return true;
            else if (target < matrix[row][col])
                right = mid;
            else
                left = mid + 1;
        } 
        if(colCount > 0  && matrix[left / colCount][left % colCount] == target)
            return true;
        if(colCount > 0 && matrix[right / colCount][right % colCount] == target)
            return true;
        return false;
    }
}

results matching ""

    No results matching ""