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

পাইথনে চারটি ইউনিক এলিমেন্ট যাদের যোগফল ঠিক k (4Sum Exact)

দেওয়া লিস্ট nums এবং টার্গেট k। চারটি ভিন্ন এলিমেন্ট যাদের যোগফল ঠিক k হয় কিনা তা বুলিয়ান রিটার্ন করতে হবে।

উদাহরণ: nums=[11,4,6,10,5,1], k=25 → [4,6,10,5]=25 → True।

নেস্টেড লুপ + টু-পয়েন্টার

  1. অ্যারে সর্ট করুন।
  2. দুটি নেস্টেড লুপ i (০ থেকে n-4) এবং j (i+1 থেকে n-3) ফিক্স করুন।
  3. বাকি দুইটি জন্য টু-পয়েন্টার: l=j+1, h=n-1।
  4. summ = nums[i]+nums[j]+nums[l]+nums[h]।
  5. summ == k → True; summ < k → l++; summ > k → h--।

পাইথন কোড

class Solution:
    def solve(self, nums, k):
        nums.sort()
        n = len(nums)
        for i in range(n - 3):
            for j in range(i + 1, n - 2):
                l, h = j + 1, n - 1
                while l < h:
                    summ = nums[i] + nums[j] + nums[l] + nums[h]
                    if summ == k:
                        return True
                    elif summ < k:
                        l += 1
                    else:
                        h -= 1
        return False

ob1 = Solution()
print(ob1.solve([11, 4, 6, 10, 5, 1], 25))  # True

টাইম কমপ্লেক্সিটি: O(n³), স্পেস: O(1)। 4Sum সমস্যার স্ট্যান্ডার্ড সমাধান। ডুপ্লিকেট এড়াতে এক্সট্রা চেক যোগ করা যেতে পারে।

  1. পাইথনে তালিকা থেকে অ-সন্নিহিত উপাদানগুলোর সর্বোচ্চ সমষ্টি খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে সংখ্যা স্বতন্ত্র ফ্যাক্টোরিয়াল যোগফল হিসেবে প্রকাশযোগ্য কিনা যাচাই করার প্রোগ্রাম

  3. পাইথন প্রোগ্রাম লিস্টের উপাদানগুলোর যোগফল বের করা

  4. পাইথনে লিস্টের এলিমেন্টগুলোর যোগফল বের করা