如何求数组中排除重复元素的整数之和?

问题描述 投票:0回答:1

除了一个测试用例外,我几乎成功了。这是 C++ 代码。

int main() {
    int summation=0;
    int size;
    cin>>size;
    int sum[size];
    for(int i=0; i<size; i++) {
        cin >> sum[i];
    }

    for(int i=0; i<size; i++){
        bool equal=true;

        for(int j = 0; j<i-1;j++){
            if(sum[i]==sum[j]){
                equal=false;
                break;
            }
        }

        if(equal){
            summation+=sum[i];
        }
    }
    cout<<summation;
    return 0;


}

提示输入数组的大小,后跟整数

测试用例

输入:5 1 2 3 2 1 输出:6(有效)

输入:4 2 5 2 2 输出:7(有效)

输入:7 -5 8 3 -1 -1 8 4 输出:9(失败)

c++ arrays integer
1个回答
0
投票
for(int j = 0; j<i-1;j++){
//               ^^^ wrong

示例: 当

i
2
时,仅检查
sum[0] == sum[2]
,而
sum[1] == sum[2]
则不检查。解决方案是删除
-1

© www.soinside.com 2019 - 2024. All rights reserved.