💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 查找数组中非重复(不同)元素的总和 > 原文: [https://www.geeksforgeeks.org/find-sum-non-repeating-distinct-elements-array/](https://www.geeksforgeeks.org/find-sum-non-repeating-distinct-elements-array/) 给定一个具有重复元素的整数数组,任务是查找数组中所有不同元素的总和。 **示例**: ``` Input : arr[] = {12, 10, 9, 45, 2, 10, 10, 45,10}; Output : 78 Here we take 12, 10, 9, 45, 2 for sum because it's distinct elements Input : arr[] = {1, 10, 9, 4, 2, 10, 10, 45 , 4}; Output : 71 ``` **简单解决方案**是使用两个嵌套循环。 外循环从最左边的元素开始一个接一个地选择一个元素。 内部循环检查元素的左侧是否存在。 如果存在,则忽略该元素。 **时间复杂度**: `O(n^2)` **辅助空间**:`O(1)` 这个问题的**更好的解决方案**是,使用排序技术,我们首先按升序对数组的所有元素进行排序,然后在数组中逐个查找不同的元素。 ## C++ ```cpp // C++ Find the sum of all non-repeated // elements in an array #include<bits/stdc++.h> using namespace std; // Find the sum of all non-repeated elements // in an array int findSum(int arr[], int n) {     // sort all elements of array     sort(arr, arr + n);     int sum = 0;     for (int i=0; i<n; i++)     {         if (arr[i] != arr[i+1])             sum = sum + arr[i];     }     return sum; } // Driver code int main() {     int arr[] = {1, 2, 3, 1, 1, 4, 5, 6};     int n = sizeof(arr)/sizeof(int);     cout << findSum(arr, n);     return 0; } ```