0
点赞
收藏
分享

微信扫一扫

Leetcode题库74. 搜索二维矩阵(折半查找 C实现)

爱读书的歌者 2022-05-01 阅读 41

文章目录

思路

与一维数组的折半查找的思路相同,只是中间多了一维坐标与二维坐标之间的转换

代码

bool searchMatrix(int** matrix, int matrixSize, int* matrixColSize, int target) {
    int low = 0, high = matrixSize * matrixColSize[0] - 1,mid,x;
    //二分查找
    while (low <= high) {
        mid = (high - low) / 2 + low;
        //一维坐标转二维坐标
        x = matrix[mid / matrixColSize[0]][mid % matrixColSize[0]];
        //向上折叠
        if (x < target) {low = mid + 1;} 
        //向下折叠
        else{
            if(x > target){high = mid - 1;}
            else{return true;}
        }
    }
    return false;
}
举报

相关推荐

0 条评论