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