আমরা কয়েকটি উপাদান সহ একটি অ্যারে A আছে বিবেচনা করুন. আমাদের অ্যারের সমস্ত স্বতন্ত্র উপাদানের যোগফল খুঁজে বের করতে হবে। তাই যদি A =[5, 12, 63, 5, 33, 47, 12, 63], তাহলে স্বতন্ত্র উপাদানের যোগফল হল 160। ডুপ্লিকেট উপাদানগুলি একবার বিবেচনা করার পরে উপেক্ষা করা হয়।
আমরা দক্ষতার সাথে এই সমস্যা সমাধান করতে unordered সেট ব্যবহার করতে পারেন. আমরা লুপের জন্য একটি একক চালাব এবং কোন মানটি প্রথমবার আসে, এটি যোগ ভেরিয়েবলে যোগ করে এবং হ্যাশ টেবিলে সংরক্ষণ করে যা পরবর্তী সময়ের জন্য, আমরা এই মানটি ব্যবহার করব না।
উদাহরণ
#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