ধরুন আমাদের দুটি অ্যারে A এবং B আছে, এই অ্যারেতে কয়েকটি উপাদান রয়েছে। তাদের ছেদ খুঁজে বের করতে হবে। সুতরাং যদি A =[1, 4, 5, 3, 6], এবং B =[2, 3, 5, 7, 9] হয়, তাহলে ছেদ হবে [3, 5]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- দুটি অ্যারে A এবং B নিন
- যদি A-এর দৈর্ঘ্য B-এর দৈর্ঘ্যের চেয়ে ছোট হয়, তাহলে তাদের অদলবদল করুন
- অ্যারের উপাদানগুলির ফ্রিকোয়েন্সি গণনা করুন এবং তাদের m এ সংরক্ষণ করুন
- B এর প্রতিটি উপাদান e এর জন্য, যদি e m তে থাকে এবং ফ্রিকোয়েন্সি শূন্য হয় না,
- ফ্রিকোয়েন্সি m[e] 1 দ্বারা হ্রাস করুন
- ফলিত অ্যারেতে e ঢোকান
- ফলাফল অ্যারে ফেরত দিন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
class Solution(object):
def intersect(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: List[int]
"""
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]