اهي عناصر ڳوليو جيڪي پهرين صف ۾ موجود آهن نه ٻئي ۾


تڪليف جي سطح آسان
بار بار پڇڻ ۾ قبول ڪريو دهلي حقيقت جو جائزو فاتح اسپيڊل زو
ڪيريو هاش

مسئلو “عناصر ڳوليو جيڪي پهرين صف ۾ موجود آهن نه ڪي سيڪنڊ ۾” ٻڌائي ٿو ته توهان کي ٻه ڏنا ويا آهن قطارون. گرفتون سڀني تي مشتمل آهن جيتريون. توهان کي نمبرن کي ڳولڻو پوندو جيڪي ٻئي صف ۾ موجود نه هوندا پر پهرين صف ۾ موجود هوندا.

مثال

اهي عناصر ڳوليو جيڪي پهرين صف ۾ موجود آهن نه ٻئي ۾

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. سريش ب [All] جي سڀني عنصرن کي هش سيٽ ۾ داخل ڪريو.
  3. جڏهن ته مان <l1 (هڪ صف جي ڊيگهه []].
    1. جيڪڏهن هش سيٽ ۾ صفي [i] شامل ناهي ، ته پوءِ [i] پرنٽ ڪيو.

وضاحت

اسان ٻه انٽيگر ايبل ڏني آهي ۽ هڪ مسئلو بيان ڪيو آهي جيڪو انگ ڳولڻ جي لاءِ پڇون ٿا جيڪو پهرين صف ۾ موجود آهي نه ٻي صف ۾. اسان استعمال ٿيڻ وارا آهيون هاشمي انهي مسئلي ۾. هيشنگ اسان کي ڪارائتو طريقي سان حل ڳولڻ ۾ مدد ڪري ٿو.

اسان هش سيٽ ۾ صف ب [] نمبر رکڻ وارا آهيون ۽ صف جي سڀني نمبر داخل ڪرڻ کان پوءِ []. اسان ٽرور کي ترتيب ڏيڻ وارا آهيون [] ۽ هر عنصر هڪ وقت ۾ ۽ چيڪ ڪريو ته هاش سيٽ ۾ اهو عنصر شامل ناهي. جيڪڏهن اهو اهو عنصر ناهي ، اسان صف جي هڪ خاص عنصر [i] کي پرنٽ ڪرڻ وارا آهيون ۽ ٻيو نمبر چيڪ ڪرڻ جي لاءِ آهي.

اچو ته هڪ مثال تي غور ڪريون ۽ سمجھون:

پهرين صف هڪ آهي [] = a [] = {2,6,8,9,5,4،9,5,2,6,8،XNUMX،XNUMX،XNUMX،XNUMX} ، b [] = {XNUMX،XNUMX،XNUMX،XNUMX،XNUMX}

اسان کي هاشٽ ۾ صف ب جي سڀني عنصرن کي داخل ڪرڻو پوندو ، انهي ڪري هاشٽ ۾ ، اسان وٽ هيٺ ڏنل قدر آهن:

هش سيٽ: {9,5,2,6,8،XNUMX،XNUMX،XNUMX} // بنيادي طور تي b [] جا سڀئي قدر.

اسان صف کي هڪ تان پار ڪنديون [] ۽ هر هڪ کي پنهنجو عنصر ڪ takeون ٿا ۽ حالت چيڪ ڪنداسين.

= = 0 ، هڪ [i] = 2

2 هاش سيٽ ۾ آهي ، تنهن ڪري اهو پرنٽ نه ڪندو.

= = 1 ، هڪ [i] = 6

6 هشت سيٽ ۾ آهي ، ٻيهر اهو ڇپجڻ نه ڏيندو.

= = 2 ، هڪ [i] = 8

8 هاشٽ ۾ آهي ، اهو ڇپجڻ نه ڏيندو.

= = 3 ، هڪ [i] = 9

9 هاش سيٽ ۾ آهي ، تنهن ڪري اهو پرنٽ نه ڪندو.

= = 4 ، هڪ [i] = 5

5 هشت سيٽ ۾ آهي ، ٻيهر اهو ڇپجڻ نه ڏيندو.

= = 5 ، هڪ [i] = 4

4 هش سيٽ ۾ نه آهي ، تنهن ڪري هن وقت اهو پرنٽ ڪيو ويندو مطلب اهو نمبر آهي جيڪو صف ۾ موجود آهي [] پر صف ۾ ب [] نه آهي ڇاڪاڻ ته بنيادي طور تي هش سيٽ صف ب [] جو ڪلون آهي ۽ اسان جو محصول هوندو. بڻجي '4'.

عنصر ڳولڻ لاءِ سي ++ ڪوڊ جيڪي پهرين صف ۾ موجود آهن نه ٻئي ۾

#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

پيچيدگي تجزيي

وقت جي پيچيدگي

اي (اين) جتي "ن" صف 1 ۾ عناصر جو تعداد آھي. ڇو ته داخل ڪرڻ ۽ ڳولا لاءِ هش سيٽ کي استعمال ڪرڻ اسان کي او (1) ۾ آپريشن ڪرڻ جي اجازت ڏئي ٿو. ان ڪري وقت جي پيچيدگي سڌي آهي.

خلائي پيچيدگي

اي (اين) جتي "ن" صف 1 ۾ عناصر جو تعداد آھي. جتان اسان ٻئي صف جا عنصر محفوظ ڪري رهيا آهيون. اھڙي طرح جاءِ گهربل آھي جيڪا ٻئي صف جي ماپ جيتري ھجي.