দুটি অ্যারে A এবং B দেওয়া থাকে। তাদের ইন্টারসেকশন (সাধারণ উপাদানগুলো) বের করতে হবে, ফ্রিকোয়েন্সি বিবেচনায়। উদাহরণ: A = [1,4,5,3,6], B = [2,3,5,7,9] হলে ইন্টারসেকশন [3,5]।
সমাধানের পদ্ধতি
- ছোট অ্যারেটিকে বড় অ্যারেতে সোয়াপ করুন (অপ্টিমাইজেশনের জন্য)।
- বড় অ্যারের ফ্রিকোয়েন্সি ম্যাপ (ডিকশনারি) বানান।
- ছোট অ্যারের প্রতিটি উপাদান
eএর জন্য:- যদি
eম্যাপে থাকে এবং ফ্রিকোয়েন্সি > ০, তবে ফ্রিকোয়েন্সি এক কমিয়েe-কে রেজাল্টে যোগ করুন।
- যদি
- রেজাল্ট অ্যারে রিটার্ন করুন।
উদাহরণ কোড
class Solution(object):
def intersect(self, nums1, nums2):
m = {}
if len(nums1) < len(nums2):
nums1, nums2 = nums2, nums1
for i in nums1:
if i not in m:
m[i] = 1
else:
m[i] += 1
result = []
for i in nums2:
if i in m and m[i]:
m[i] -= 1
result.append(i)
return result
ob1 = Solution()
print(ob1.intersect([1,4,5,3,6], [2,3,5,7,9]))
ইনপুট
[1,4,5,3,6] [2,3,5,7,9]
আউটপুট
[3,5]