c_cpp [阵] 3sum最近。给定n个整数的数组S,在S中找到三个整数,使得总和最接近给定数字target。 Retur

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp [阵] 3sum最近。给定n个整数的数组S,在S中找到三个整数,使得总和最接近给定数字target。 Retur相关的知识,希望对你有一定的参考价值。

int three_sum_closest(vector<int>& A, int key) {
    if(A.empty()) return -1;
    sort(A.begin(), A.end());
    int i = 0, N = A.size();
    int close_sum;
    int diff = INT_MAX;
    while(i <= N-3) {
        int j = i+1, k = N-1;
        while(j < k) {
            long long sum = A[i] + A[j] + A[k];
            if(sum == key) return sum;
            
            if(diff > abs(sum - key)) {
                diff = abs(sum - key);
                close_sum = sum;
            }
            
            if(sum < key) j++;
            else if(sum > key) k--;
        }
        i++;
    }
    return close_sum;
}

int main()
{
    vector<int> A = {1,2,3,4,5};
    cout << three_sum_closest(A, 4);
}

以上是关于c_cpp [阵] 3sum最近。给定n个整数的数组S,在S中找到三个整数,使得总和最接近给定数字target。 Retur的主要内容,如果未能解决你的问题,请参考以下文章

最接近的三数之和(threeSumClosest)*

3Sum Closest

LeetCode系列-3Sum Closest

**16. 3Sum Closest

c_cpp 给定Ñ个矩阵:A1,A2,...,AN,其中艾与艾+ 1是可乘的,I = 1,2,...,N-1确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。输入数

LeetCode面试必备100题:3Sum 数组中查找三个和为零的数