c_cpp 检查数组中是否存在两个元素,其总和等于数组其余部分的总和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 检查数组中是否存在两个元素,其总和等于数组其余部分的总和相关的知识,希望对你有一定的参考价值。

// https://www.geeksforgeeks.org/check-exist-two-elements-array-whose-sum-equal-sum-rest-array/
#include <iostream>
#include <set>
using namespace std;

void func(int a[],int n){
    int sum=0;
    for (int i=0;i<n;i++)
        sum+=a[i];

    if (sum%2==1){
        cout<< "No such pair exists!";
        exit(0);
    }

    sum/=2;
    set <int> s;
    for(int i=0;i<n;i++) {
        int v=sum-a[i];

        if (s.find(v) != s.end()){
            cout<< "Elements are: " << a[i] << " and " << v ;
            exit(0);
        }
        s.insert(a[i]);
    }
    cout<< "No such pair exists!";
}

int main() {
    int n;
    cin>>n;
    int a[n];
    for (int i=0;i<n;i++)
        cin>>a[i];

    func(a,n);
}

以上是关于c_cpp 检查数组中是否存在两个元素,其总和等于数组其余部分的总和的主要内容,如果未能解决你的问题,请参考以下文章