এমনকি সংখ্যাগুলি পৃথক করে সাবসেটগুলি গণনা করুন  


কাঠিন্য মাত্রা সহজ
প্রায়শই জিজ্ঞাসা করা হয় সিসকো এক্সপিডিয়া Myntra এসএপি ল্যাব ট্যাক্সি4 সুরক্ষা
বিন্যাস কাটা সাবসেট

একটি সাক্ষাত্কারে আমরা সকলেই সাবসেট সমস্যার সাথে লড়াই করেছি problem ইন্টারভিউয়াররাও এই সমস্যাগুলি খুব পছন্দ করেন। এই সমস্যাগুলি তাদের যে কোনও শিক্ষার্থীর চিন্তার প্রক্রিয়া বোঝার পাশাপাশি পরীক্ষা করতে সহায়তা করে। সুতরাং, আর কোনও অ্যাডো ছাড়াই আসুন আমরা সরাসরি সমস্যার মধ্যে ঝাঁপিয়ে পড়ি।

অধ্যায় 1  

সমস্যা বিবৃতি

আমাদের সংখ্যার সমন্বয় / অ্যারে সরবরাহ করা হয়েছে। আমরা যে সাবলেটগুলি পেতে পারি তার অনন্য এমনকি সংখ্যাসমূহের তালিকাভুক্ত করতে হয়।

আসুন একটি ছোট উদাহরণ গ্রহণ করুন:

ইনপুট:

[1,2,5,6,3,2,1,1,8]

সম্ভাব্য উপগ্রহ:

[2,6]

[6,8]

[2,6,8]

দ্রষ্টব্য: একই সংখ্যা সহ সাবসেটগুলি আলাদা বিবেচনা করা হবে না

আমি সম্ভাব্য উত্তর সাবটাইটগুলির মধ্যে একটি হাইলাইট করে এটি চিত্রিত করি।

এমনকি সংখ্যাগুলি পৃথক করে সাবসেটগুলি গণনা করুন

অধ্যায় 2  

বিশ্লেষণ

আমরা কী চাই তা খুঁজে বের করার অনেকগুলি উপায় রয়েছে। দ্য পাশবিক বল একটি সম্ভব সমস্ত সাবসেটগুলি সন্ধান করা হবে এবং তারপরে আমাদের বিধানকে সন্তুষ্ট করে এমনগুলি সন্ধান করবে।

উপরের পদ্ধতিটি কোনও দেয়ালের বিরুদ্ধে মাথা ঘোরানোর চেয়ে কম নয়। সুতরাং, আপনাকে বোকা শোনার বিব্রততা বাঁচাতে আমি সবচেয়ে সহজ পদ্ধতিগুলি তৈরি করেছি যা আপনাকে সবচেয়ে ভাল সময়ে উত্তর পেতে সহায়তা করতে পারে।

প্রতিবার যখন আমরা একটি সংখ্যার মুখোমুখি হই তখন আমাদের দুটি পছন্দ থাকে

  • এটি হয় উপসেটে থাকতে বেছে নিতে পারে
  • এটি সাবসেটের বাইরে থাকা বেছে নিতে পারে
আরো দেখুন
আকারের প্রতিটি উইন্ডোতে পৃথক উপাদানগুলি গণনা করুন

সুতরাং, এখন আমাদের সাথে আমাদের একমাত্র কাজটি নির্ধারণ করছে যে সংখ্যাটি অনন্য কিনা। (পূর্বোক্ত নিয়মের জন্য ধন্যবাদ)

প্রক্রিয়াটি শূন্য করা যাক:

  • প্রথমত, রক্ষণাবেক্ষণ ক হ্যাশসেট এমনকি আমরা যে সংখ্যার মুখোমুখি হয়েছি তার একটি সঞ্চয় রাখতে
  • দ্বিতীয়ত, একটি লুপ চালান
  • একটি সংখ্যা সমান কিনা তা পরীক্ষা করে দেখুন
  • সংখ্যাটি যদি সমান হয় তবে আমরা এটিতে হ্যাশসেট যুক্ত করব
  • হ্যাশসেটের স্ব-শৃঙ্খলা রয়েছে যা নিশ্চিত করে যে আমাদের মধ্যে কেবল অনন্য উপাদান রয়েছে
  • তারপরে আমরা হ্যাশসেটে উপাদানগুলির সংখ্যা গণনা করি
  • এই গণনাটি আমাদের কাছে থাকা অনন্য এমনকি সংখ্যার সংখ্যা নির্দেশ করে
  • আমরা এই গণনাটি ব্যবহার করতে পারি তারপরে সাবসেটের সংখ্যা খুঁজতে
  • উপগ্রহের সংখ্যা = 2 ^ গণনা -1

উপরের প্রক্রিয়াটি কোড হিসাবে এই হিসাবে রাখা যেতে পারে:

এমনকি সংখ্যার আলাদা করার জন্য গণনা সাবসেটের জন্য জাভা কোড

public class Main
{
    public static int evenSub(int arr[],int n)
    {
        HashSet<Integer>store=new HashSet<Integer>();
        for(int i=0;i<arr.length;i++)
        {
            if(arr[i]%2==0)
                store.add(arr[i]);
        }
        int p=store.size();
        return (int)(Math.pow(2,p)-1);
    }
    public static void main(String[] args)  
    { 
    int arr[] = {2, 1, 9, 2, 6, 5, 3}; 
    int n = arr.length; 
    System.out.println
        ("Number of subsets = "+ evenSub(arr, n)); 
    }
}
2, 1, 9, 2, 6, 5, 3
3

সি ++ নম্বর এমনকি পৃথকীকরণ সহ গণনা সাবসেটের জন্য কোড

আমরা জাভা থেকে সি ++ তে স্যুইচ করার সাথে সাথে আমরা হ্যাশসেটের পরিবর্তে আনর্ডারড সেট ব্যবহার করব এবং আমাদের অনুসারে কয়েকটি পরামিতি ঘুরে দেখব।

int evenSub(int arr[],int n)
{
    unordered_set<int>store; 
    for(int i=0;i<n;i++)
    {
        if(arr[i]%2==0)
            store.insert(arr[i]);
    }
    int p=store.size();
    return (pow(2,p)-1);
}
int main() 
{
    int arr[] = {
4, 2, 1, 9, 2, 6, 5, 3
7

পৃথক এমনকি সংখ্যা থাকা গণনা সাবসেটের জন্য জটিলতা বিশ্লেষণ

সময় জটিলতা = ও (এন)

স্পেস জটিলতা = ও (এন)

সময় জটিলতা

  • অ্যারের মধ্য দিয়ে যাওয়ার পরে এটি ও (এন)
  • সাবসেটটিতে যুক্ত করার আগে আমরা প্রতিটি উপাদানকে লক্ষ্য করি
আরো দেখুন
প্রদত্ত পছন্দসই অ্যারে পেতে সর্বনিম্ন পদক্ষেপ গণনা করুন

স্পেস জটিলতা ity

  • এটি ও (এন) এর মতো সবচেয়ে খারাপ ক্ষেত্রে আমরা পুরো অ্যারে সঞ্চয় করে শেষ করতে পারি