Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm tổng các phần tử phân biệt (không trùng lặp) trong mảng trong C++


Cho mảng A, tìm tổng các phần tử khác nhau. Ví dụ [5,12,63,5,33,47,12,63] → 160.

Dùng unordered_set: duyệt mảng, nếu phần tử chưa có trong set thì cộng vào tổng và thêm vào set.

Ví dụ

#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); }

Kết quả

Sum is: 160