LeetCode #74 Search a 2D Matrix

search_1.png
search_2.png
/**
* Abstract: take a[][] as a[]
*/
bool bi_search(int** matrix, int matrixSize, int* matrixColSize, int target, int lo, int hi) {
    if (lo >= hi) return false;
    int mid = (lo + hi) / 2, j = mid % *matrixColSize, i = mid / *matrixColSize;
    if (matrix[i][j] == target) return true;
    if (matrix[i][j] > target) { 
        return bi_search(matrix, matrixSize, matrixColSize, target, lo, mid);
    } else { 
        return bi_search(matrix, matrixSize, matrixColSize, target, mid + 1, hi);
    }
}
bool searchMatrix(int** matrix, int matrixSize, int* matrixColSize, int target) { return bi_search(matrix, matrixSize, matrixColSize, target, 0, matrixSize * *matrixColSize); }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容