एलिमेन्टहरू फेला पार्नुहोस् जुन पहिलो एरेमा अवस्थित छ दोस्रोमा होइन  


कठिनाई तह सजिलो
बारम्बार सोधिन्छ समग्र दिल्लीवरी तथ्य कट्टरपन्थी स्नैपडल Zoho
एरे हैश

समस्या "एलिमेन्टहरू फेला पार्नुहोस् जुन पहिलो एर्रेमा छन् र दोस्रोमा छैन" भन्छन कि तपाईंलाई दुई दिइयो एर्रेहरू। एर्रेमा सबै हुन्छन् पूर्णांकहरू। तपाईंले नम्बरहरू पत्ता लगाउनु पर्नेछ जुन दोस्रो एरेमा अवस्थित हुँदैन तर पहिलो एर्रेमा उपस्थित हुनेछ।

उदाहरणका  

एलिमेन्टहरू फेला पार्नुहोस् जुन पहिलो एरेमा अवस्थित छ दोस्रोमा होइनपिन

a [] = {2,4,3,1,5,6}
b [] = {2,1,5,6}
4 3
a [] ={4,2,6,8,9,5}
b [] ={9,3,2,6,8}
4

अल्गोरिदम  

  1. घोषणा गर्नुहोस् ह्याससेट.
  2. एर्रे b [] का सबै तत्वहरू ह्याससेटमा घुसाउनुहोस्।
  3. जबकि म <l1 (एर्रेको लम्बाई []]।
    1. यदि ह्याससेटले एरे [i] समावेश गर्दैन, तब प्रिन्ट गर्नुहोस् [i]।

स्पष्टीकरण

हामीले दुई इन्टिजर एर्रे र समस्या कथन दियौं जुन दोस्रो एरेमा नभई पहिलो एरेमा रहेको नम्बर पत्ता लगाउन को लागी सोध्छ। हामी प्रयोग गर्न जाँदैछौं ह्याशिंग यस समस्यामा ह्याशिंगले हामीलाई प्रभावकारी तरिकामा समाधान फेला पार्न मद्दत गर्दछ।

हामी एर्रे b [] नम्बरहरू ह्याससेटमा राख्दै छौं र एरे b को सबै नम्बर घुसाएपछि []। हामी एउटा एर्रालाई ट्र्याभर्स गर्न जाँदैछौं [र प्रत्येक एलिमेन्ट एक पटकमा लिदैछौं र जाँच गर्छौं कि ह्याससेटमा त्यो एलिमेन्ट छैन। यदि यो तत्व छैन भने, हामी एर्रे को त्यो विशेष तत्व प्रिन्ट गर्न जाँदैछौं [i] र अर्को नम्बरको लागि जाँच गर्नेछौं।

पनि हेर्नुहोस्
एर्रेमा समान तत्वहरूको साथ अनुक्रमणिका जोडीहरूको गणना

हामी एक उदाहरण विचार र यसलाई बुझौं:

पहिलो एर्रे हो [] = a [] = 2,6,8,9,5,4 २,9,5,2,6,8,,,,,,, [, बी [] = {,,,,,,,}}

हामीले एर्रे b [] ह्याससेटमा सबै एलिमेन्टहरू घुसाउनु पर्छ, त्यसैले ह्याससेटमा हामीसँग निम्न मानहरू छन्:

ह्याससेट: {,, .,२,9,5,2,6,8} // मूलत: b का सबै मानहरू []।

हामी एर्रे [a] लाई ट्रान्सभर्स गर्नेछौं र यसको प्रत्येक तत्व लिन्छौं र सर्त जाँच गर्छौं।

i = 0, a [i] = २

२ ह्याशसेटमा छ, त्यसैले यसले प्रिन्ट गर्ने छैन।

i = 1, a [i] = २

The ह्याससेटमा छ, फेरि यो छापिने छैन।

i = 2, a [i] = २

The ह्याससेटमा छ, यो छापिने छैन।

i = 3, a [i] = २

२ ह्याशसेटमा छ, त्यसैले यसले प्रिन्ट गर्ने छैन।

i = 4, a [i] = २

The ह्याससेटमा छ, फेरि यो छापिने छैन।

i = 5, a [i] = २

The ह्याससेटमा छैन, त्यसैले यस पटक यो मुद्रित हुनेछ यसको मतलब यो संख्या हो जुन एरेमा देखा पर्दछ [[] तर एरे बीमा छैन [किनभने मूलतः ह्याससेट एरे बीको क्लोन हो [] र हाम्रो आउटपुट '' 'बन्नुहोस्।

C ++ कोड एलिमेन्टहरू फेला पार्न जुन पहिलो एर्रेमा उपस्थित छन् र दोस्रोमा छैन  

#include<unordered_set>
#include<iostream>
using namespace std;

void getMissingElement(int A[], int B[], int l1, int l2)
{
  unordered_set <int> myset;

  for (int i = 0; i < l2; i++)
    myset.insert(B[i]);

  for (int j = 0; j < l1; j++)
    if (myset.find(A[j]) == myset.end())
      cout << A[j] << " ";
}
int main()
{
    int a[] = { 9, 2, 3, 1, 4, 5 };
    int b[] = { 2, 4, 1, 9 };
  int l1 = sizeof(a) / sizeof(a[0]);
  int l2 = sizeof(b) / sizeof(b[0]);
  getMissingElement(a, b, l1, l2);
  return 0;
}
3 5

जाभा कोड एलिमेन्टहरू फेला पार्न जुन पहिलो एरेमा अवस्थित छन् दोस्रोमा होइन  

import java.util.HashSet;
import java.util.Set;

class missingElement
{
    public static void getMissingElement(int A[], int B[])
    {
        int l1 = A.length;
        int l2 = B.length;

        HashSet<Integer> set = new HashSet<>();
        for (int i = 0; i < l2; i++)
            set.add(B[i]);

        for (int i = 0; i < l1; i++)
            if (!set.contains(A[i]))
                System.out.print(A[i]+" ");
    }
    public static void main(String []args)
    {
        int a[] = { 9, 2, 3, 1, 4, 5 };
        int b[] = { 2, 4, 1, 9 };

        getMissingElement(a, b);
    }
}
3 5

जटिलता विश्लेषण  

समय जटिलता

O (N) जहाँ "N" एर्रेमा एलिमेन्ट्सको संख्या हो। किनभने घुसाउने र खोजीका लागि ह्याससेट प्रयोग गर्दा हामीलाई यी अपरेशनहरू ओ (१) गर्न अनुमति दिन्छ। यस प्रकार समय जटिलता रैखिक छ।

पनि हेर्नुहोस्
सबैभन्दा सानो चरित्र लेटकोड समाधानको फ्रिक्वेन्सी द्वारा स्ट्रिंगहरू तुलना गर्नुहोस्

ठाउँ जटिलता

O (N) जहाँ "N" एर्रेमा एलिमेन्ट्सको संख्या हो। किनकि हामी दोस्रो एर्रेको एलिमेन्टहरू भण्डार गर्दैछौं। यसैले आवश्यक स्पेस दोस्रो एरेको आकारसँग समान छ।