আমাদের দুটি অ্যারে দেওয়া হয়েছে Arr1[] এবং Arr2[] এবং একটি সংখ্যা K। লক্ষ্য হল উভয় অ্যারের উপাদানগুলির অনন্য জোড়া খুঁজে বের করা যাতে তাদের যোগফল K হয়। জোড়াগুলি আকারে হবে ( Arr1[i], Arr2[j ] ) যেখানে Arr1[i]+Arr2[j]==K.
আমরা i এবং j এর জন্য দুটি লুপ ব্যবহার করে অতিক্রম করব। যোগফল হলে (Arr1[i]+Arr2[j])==K। এবং জোড়াটি unordered_map
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট
Arr1[]={ 1,3,2,4,3,2 }; Arr2[]={ 0,2,1,2,3 }; K=4
আউটপুট
Number of pairs with sum K : 4
ব্যাখ্যা
Pairs will be ( Arr1[0], Arr2[4] ) → (1,3) ( Arr1[1], Arr2[2] ) → (3,1) ( Arr1[2], Arr2[1] ) → (2,2) ( Arr1[3], Arr2[2] ) → (3,1) All other pairs already exist.Total unique pairs 4.
ইনপুট
Arr1[]={ 0,2,1,2,3}; Arr2[]={ 1,1,1,1,1 }; K=3
আউটপুট
Number of pairs with sum K : 1
ব্যাখ্যা
Pairs will be ( Arr1[1], Arr2[0] ) → (2,1) All other pairs already exist.Total unique pairs 1.
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
আমরা যোগফলের জন্য দুটি অ্যারে Arr1[] এবং Arr2[] এবং একটি পরিবর্তনশীল K নিই।
-
Len1 এবং Len2 উভয় অ্যারের দৈর্ঘ্য বোঝাতে ব্যবহৃত হয়।
-
ফাংশন পেয়ারসুমিসকে(int arr1[],int arr2[],int k,int l1,int l2) সমস্ত ভেরিয়েবল নেয় এবং sum=k সহ উভয় অ্যারে থেকে উপাদানগুলির অনন্য জোড়ার গণনা প্রদান করে।
-
জোড়ার জন্য প্রাথমিক পরিবর্তনশীল গণনা 0 হিসাবে নিন।
-
অনন্য জোড়া সঞ্চয় করতে unordered_map umap নিন।
-
লুপের জন্য দুটি ব্যবহার করে উভয় অ্যারে অতিক্রম করুন৷
-
arr1[]-এর উপাদানগুলির জন্য i=0 থেকে i
এ উপাদানের জন্য -
যোগফল arr1[i]+arr2[j]=k কিনা পরীক্ষা করুন। যদি হ্যাঁ, umap.find(....)==umap.end() এর মাধ্যমে এই জুটি বিদ্যমান কিনা তা পরীক্ষা করুন।
-
যদি এটি umap এবং বৃদ্ধি গণনায় এই জোড়া যোগ না করে।
-
সমস্ত লুপ গণনার শেষে এই ধরনের জোড়ার মোট সংখ্যা থাকবে।
-
ফলাফল হিসাবে গণনা ফেরত দিন।
উদাহরণ
#include <bits/stdc++.h> using namespace std; int pairsumisK(int arr1[],int arr2[],int k,int l1,int l2){ int count = 0; unordered_map<int, int> umap; for (int i = 0; i < l1; i++){ for (int j = 0; j < l2; j++){ int sum=arr1[i]+arr2[j]; if(sum==k) //pairs with sum=k only{ if(umap.find(arr1[i]) == umap.end()) //unique pairs only{ umap.insert(make_pair(arr1[i],arr2[j])); } } } } return count; } int main(){ int Arr1[]={ 1,2,3,0,2,4 }; int Arr2[]={ 3,2,5,2 }; int len1=sizeof(Arr1)/sizeof(Arr1[0]); int len2=sizeof(Arr2)/sizeof(Arr2[0]); int K=5; //length of array cout <<endl<< "Number of pairs with sum K : "<<pairsumisK(Arr1,Arr2,K,len1,len2); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেNumber of pairs with sum K : 0