c_cpp 在排序数组中,找到最接近给定数字的数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 在排序数组中,找到最接近给定数字的数字相关的知识,希望对你有一定的参考价值。

int find_closest(int A[], int N, int target) {
    if(target < A[0]) return A[0];
    if(target > A[N-1]) return A[N-1];
    int low = 0, high = N-1;
    while(low <= high) {
        int mid = low + (high - low) / 2;
        if(A[mid] == target) return target;
        else if(A[mid] < target) low = mid+1;
        else high = mid-1;
    } // after this step, if 'target' is still not found, 'low' is always a bit larger than 'target'
    if(A[low] - target < target - A[low-1])
        return A[low];
    else
        return A[low-1];
}

以上是关于c_cpp 在排序数组中,找到最接近给定数字的数字的主要内容,如果未能解决你的问题,请参考以下文章

在数组中查找三个元素之和最接近给定数字

C++:查找数组中最接近的值

c_cpp 从两个排序的数组中找到最接近的一对

c_cpp 将给定数字舍入为最接近的10的倍数

PHP 按时间排序数组并找到与 X 数字最接近的匹配项

c_cpp 查找已排序数组中给定数字的出现次数