কম্পিউটার টিউটোরিয়াল

পাইথনে দুটি অ্যারের ইন্টারসেকশন II

দুটি অ্যারে A এবং B দেওয়া থাকে। তাদের ইন্টারসেকশন (সাধারণ উপাদানগুলো) বের করতে হবে, ফ্রিকোয়েন্সি বিবেচনায়। উদাহরণ: A = [1,4,5,3,6], B = [2,3,5,7,9] হলে ইন্টারসেকশন [3,5]।

সমাধানের পদ্ধতি

  1. ছোট অ্যারেটিকে বড় অ্যারেতে সোয়াপ করুন (অপ্টিমাইজেশনের জন্য)।
  2. বড় অ্যারের ফ্রিকোয়েন্সি ম্যাপ (ডিকশনারি) বানান।
  3. ছোট অ্যারের প্রতিটি উপাদান e এর জন্য:
    • যদি e ম্যাপে থাকে এবং ফ্রিকোয়েন্সি > ০, তবে ফ্রিকোয়েন্সি এক কমিয়ে e-কে রেজাল্টে যোগ করুন।
  4. রেজাল্ট অ্যারে রিটার্ন করুন।

উদাহরণ কোড

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]
  1. পাইথনে intersection() ফাংশন

  2. পাইথনে দুটি অ্যারেতে ইন্টারসেকশন (Lambda Expression এবং Filter Function)

  3. পাইথনে heapq.merge() ব্যবহার করে দুটি সর্টেড লিস্ট মার্জ করা

  4. পাইথনে দুটি লিস্টের ইন্টারসেকশন (Intersection) বের করা