विचार करें कि हमारे पास कुछ तत्वों के साथ एक सरणी ए है। हमें सरणी में सभी अलग-अलग तत्वों का योग खोजना होगा। तो अगर ए =[5, 12, 63, 5, 33, 47, 12, 63], तो अलग-अलग तत्वों का योग 160 है। एक बार विचार करने के बाद डुप्लिकेट तत्वों को आसानी से अनदेखा कर दिया जाता है।
हम इस समस्या को कुशलतापूर्वक हल करने के लिए अनियंत्रित सेट का उपयोग कर सकते हैं। हम लूप के लिए एक सिंगल चलाएंगे और कौन सी वैल्यू पहली बार आएगी, इसके ऐड इन सम वेरिएबल और हैश टेबल में स्टोर करेंगे कि अगली बार हम इस वैल्यू का इस्तेमाल नहीं करेंगे।
उदाहरण
#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