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 检查数组中是否存在两个元素,其总和等于数组其余部分的总和的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 检查是否存在具有奇数加权总和的循环

是否可以对数组中的每 3 个相邻元素求和,并使用向量指令使它们中的每一个都等于总和?

实现一个函数, // 判断一个给定整数数组中是否存在某两个元素之和恰好等于一个给定值 k, // 存在则返回 true,否则返回 false。

c_cpp 在数字字符串中查找子字符串的最大长度,其前半部分的总和等于其后半部分

给定目标总和,找出给定数组中是否存在一对总和的元素

Java - 堆栈 - 检查堆栈的 2 个数字是不是等于 100