题解 | #二维数组中的查找#

二维数组中的查找

https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e

int BinarySearch(int *arr,int width,int target)
{
    int left = 0;//0
    int right = width - 1;//3
    while(left <= right)
    {
        int mid = (left + right)/2;//1 , 2,3
        if(arr[mid] > target)
        {
            right = mid - 1;
        }
        else if (arr[mid] < target)
        {
            left = mid + 1;  //2,3
        }
        else if(arr[mid] == target)
        {
            return 1;
        }
    }
    return 0;
    
}

bool Find(int target, int** array, int arrayRowLen, int* arrayColLen ) 
{
    int i = 0;
    int width = *arrayColLen;
    for( i = 0;i < arrayRowLen ;i++)
    {
        int ret = 0;
        ret = BinarySearch( array[i], width, target);   //对每行进行二分查找
        if(ret == 1)
        {
            return true;
        }
    }
    return false;
    // write code here
}
#刷题#
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务