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

C#-এ অ্যারে-এ যেকোনো দুটি সংখ্যার যোগফল নির্দিষ্ট মান হতে পারে কিনা চেক করা

দুটি নেস্টেড লুপ বা HashSet ব্যবহার করে অ্যারেতে দুটি সংখ্যার যোগফল নির্দিষ্ট টার্গেটের সমান কিনা চেক করা যায়।

ব্রুট-ফোর্স (O(n²)) — সহজ কিন্তু ধীর


int[] arr = { 7, 4, 6, 2 };
int target = 8;

for (int i = 0; i < arr.Length; i++)
{
    for (int j = 0; j < arr.Length; j++)
    {
        if (i != j && arr[i] + arr[j] == target)
            Console.WriteLine($"Pair: {arr[i]} + {arr[j]} = {target}");
    }
}

HashSet ব্যবহার করে (O(n)) — দ্রুত


var seen = new HashSet<int>();
foreach (int n in arr)
{
    int complement = target - n;
    if (seen.Contains(complement))
        Console.WriteLine($"Pair: {complement} + {n} = {target}");
    seen.Add(n);
}

সম্পূর্ণ উদাহরণ (দুই পদ্ধতিই)


using System;
using System.Collections.Generic;

class TwoSumDemo
{
    public static void Main()
    {
        int[] arr = { 7, 4, 6, 2 };
        int target = 8;
        
        Console.WriteLine($"টার্গেট: {target}");
        Console.WriteLine("ব্রুট-ফোর্স:");
        for (int i = 0; i < arr.Length; i++)
            for (int j = i + 1; j < arr.Length; j++) // i+1 দিয়ে ডুপ্লিকেট এড়ানো
                if (arr[i] + arr[j] == target)
                    Console.WriteLine($"  {arr[i]} + {arr[j]} = {target}");
        
        Console.WriteLine("\nHashSet (O(n)):");
        var seen = new HashSet<int>();
        foreach (int n in arr)
        {
            int comp = target - n;
            if (seen.Contains(comp))
                Console.WriteLine($"  {comp} + {n} = {target}");
            seen.Add(n);
        }
    }
}

আউটপুট


টার্গেট: 8
ব্রুট-ফোর্স:
  6 + 2 = 8
  2 + 6 = 8

HashSet (O(n)):
  6 + 2 = 8

টিপস

  • ব্রুট-ফোর্সে j = i + 1 দিয়ে ডুপ্লিকেট পেয়ার এড়াতে পারেন।
  • HashSet পদ্ধতিতে প্রতিটি পেয়ার একবারই প্রিন্ট হয়।
  • সর্টেড অ্যারে থাকলে টু-পয়েন্টার (O(n log n) সর্ট + O(n) স্ক্যান) ব্যবহার করুন।
  1. পাইথনে দুটি লিস্ট থেকে ফাইনাল ইন্ডেক্সে পৌঁছানোর ন্যূনতম খরচ বের করার প্রোগ্রাম

  2. পাইথনে দুটি নন-ওভারল্যাপিং সাবলিস্ট যাদের যোগফল k এবং দৈর্ঘ্যের যোগফল ন্যূনতম

  3. পাইথনে দুটি ইন্টিজারের যোগফল (অপারেটর ছাড়া)

  4. পাইথনে পূর্ণসংখ্যা অ্যারে থেকে স্বতন্ত্র (distinct) উপাদান প্রিন্ট করার প্রোগ্রাম