在C ++中查找数组中非重复(不同)元素的总和
考虑我们有一个数组A,其中包含几个元素。我们必须找到数组中所有不同元素的总和。因此,如果A = [5、12、63、5、33、47、12、63],则不同元素的总和为160。一旦考虑了重复元素,就将其忽略。
我们可以使用无序集合有效地解决这个问题。我们将运行一个for循环,并且哪个值是第一次出现,将其求和变量相加并存储在哈希表中,下次将不再使用该值。
示例
#include<iostream>#include<unordered_set>
using namespace std;
int getNonRepeatSum(int arr[],int n) {
int sum = 0;
unordered_set< int > u_set;
for (int i=0; i<n; i++) {
if (u_set.find(arr[i]) == u_set.end()) {
sum += arr[i];
u_set.insert(arr[i]);
}
}
return sum;
}
int main() {
int arr[] = {5, 12, 63, 5, 33, 47, 12, 63};
int n = sizeof(arr)/sizeof(int);
cout << "Sum is: " << getNonRepeatSum(arr, n);
}
输出结果
Sum is: 160
以上是 在C ++中查找数组中非重复(不同)元素的总和 的全部内容, 来源链接: utcz.com/z/327099.html