ಮೊದಲ ಶ್ರೇಣಿಯಲ್ಲಿರುವ ಅಂಶಗಳನ್ನು ಹುಡುಕಿ ಮತ್ತು ಎರಡನೆಯದಲ್ಲ


ತೊಂದರೆ ಮಟ್ಟ ಸುಲಭ
ಆಗಾಗ್ಗೆ ಕೇಳಲಾಗುತ್ತದೆ ಅಕೋಲೈಟ್ ದೆಹಲಿ ಫ್ಯಾಕ್ಟ್‌ಸೆಟ್ ಫ್ಯಾನಟಿಕ್ಗಳು ಸ್ನ್ಯಾಪ್ಡಿಯಲ್ ಜೊಹೊ
ಅರೇ ಹ್ಯಾಶ್

“ಮೊದಲ ಶ್ರೇಣಿಯಲ್ಲಿರುವ ಮತ್ತು ಎರಡನೆಯದಲ್ಲದ ಅಂಶಗಳನ್ನು ಹುಡುಕಿ” ಎಂಬ ಸಮಸ್ಯೆ ನಿಮಗೆ ಎರಡು ನೀಡಲಾಗಿದೆ ಎಂದು ಹೇಳುತ್ತದೆ ಸರಣಿಗಳು. ಅರೇಗಳು ಎಲ್ಲವನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ ಪೂರ್ಣಾಂಕಗಳು. ಎರಡನೇ ಶ್ರೇಣಿಯಲ್ಲಿ ಇರದ ಆದರೆ ಮೊದಲ ಶ್ರೇಣಿಯಲ್ಲಿರುವ ಸಂಖ್ಯೆಗಳನ್ನು ನೀವು ಕಂಡುಹಿಡಿಯಬೇಕು.

ಉದಾಹರಣೆ

ಮೊದಲ ಶ್ರೇಣಿಯಲ್ಲಿರುವ ಅಂಶಗಳನ್ನು ಹುಡುಕಿ ಮತ್ತು ಎರಡನೆಯದಲ್ಲ

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. ಅರೇ ಬಿ [] ನ ಎಲ್ಲಾ ಅಂಶಗಳನ್ನು ಹ್ಯಾಶ್‌ಸೆಟ್‌ಗೆ ಸೇರಿಸಿ.
  3. ನಾನು <l1 (ಒಂದು ಶ್ರೇಣಿಯ ಉದ್ದ []).
    1. ಹ್ಯಾಶ್‌ಸೆಟ್ ಅರೇ [i] ಅನ್ನು ಹೊಂದಿಲ್ಲದಿದ್ದರೆ, ನಂತರ [i] ಅನ್ನು ಮುದ್ರಿಸಿ.

ವಿವರಣೆ

ನಾವು ಎರಡು ಪೂರ್ಣಾಂಕ ಸರಣಿಗಳನ್ನು ನೀಡಿದ್ದೇವೆ ಮತ್ತು ಸಮಸ್ಯೆಯ ಹೇಳಿಕೆಯನ್ನು ನೀಡಿದ್ದೇವೆ ಅದು ಮೊದಲ ಶ್ರೇಣಿಯಲ್ಲಿರುವ ಸಂಖ್ಯೆಯನ್ನು ಕಂಡುಹಿಡಿಯಲು ಕೇಳುತ್ತದೆ ಮತ್ತು ಎರಡನೇ ಶ್ರೇಣಿಯಲ್ಲಿಲ್ಲ. ನಾವು ಬಳಸಲಿದ್ದೇವೆ ಹ್ಯಾಶಿಂಗ್ ಈ ಸಮಸ್ಯೆಯಲ್ಲಿ. ಹ್ಯಾಶಿಂಗ್ ಪರಿಹಾರವನ್ನು ಸಮರ್ಥ ರೀತಿಯಲ್ಲಿ ಕಂಡುಹಿಡಿಯಲು ನಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ.

ನಾವು ಅರೇ ಬಿ [] ಸಂಖ್ಯೆಗಳನ್ನು ಹ್ಯಾಶ್‌ಸೆಟ್‌ನಲ್ಲಿ ಇಡಲಿದ್ದೇವೆ ಮತ್ತು ಎಲ್ಲಾ ಸಂಖ್ಯೆಯ ಶ್ರೇಣಿಯನ್ನು ಸೇರಿಸಿದ ನಂತರ ಬಿ []. ನಾವು ಅರೇ [] ಅನ್ನು ಹಾದುಹೋಗಲು ಹೋಗುತ್ತೇವೆ ಮತ್ತು ಪ್ರತಿ ಅಂಶವನ್ನು ಒಂದು ಸಮಯದಲ್ಲಿ ತೆಗೆದುಕೊಳ್ಳುತ್ತೇವೆ ಮತ್ತು ಹ್ಯಾಶ್‌ಸೆಟ್ ಆ ಅಂಶವನ್ನು ಹೊಂದಿಲ್ಲವೇ ಎಂದು ಪರಿಶೀಲಿಸುತ್ತೇವೆ. ಅದು ಆ ಅಂಶವನ್ನು ಹೊಂದಿಲ್ಲದಿದ್ದರೆ, ನಾವು ರಚನೆಯ ನಿರ್ದಿಷ್ಟ ಅಂಶವನ್ನು [i] ಮುದ್ರಿಸಲಿದ್ದೇವೆ ಮತ್ತು ಇನ್ನೊಂದು ಸಂಖ್ಯೆಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತೇವೆ.

ನಾವು ಒಂದು ಉದಾಹರಣೆಯನ್ನು ಪರಿಗಣಿಸೋಣ ಮತ್ತು ಇದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳೋಣ:

ಮೊದಲ ರಚನೆಯು ಒಂದು [] = a [] = {2,6,8,9,5,4}, ಬಿ [] = {9,5,2,6,8}

ರಚನೆಯ ಬಿ [] ನ ಎಲ್ಲಾ ಅಂಶಗಳನ್ನು ನಾವು ಹ್ಯಾಶ್‌ಸೆಟ್‌ಗೆ ಸೇರಿಸಬೇಕಾಗಿದೆ, ಆದ್ದರಿಂದ ಹ್ಯಾಶ್‌ಸೆಟ್‌ನಲ್ಲಿ, ನಾವು ಈ ಕೆಳಗಿನ ಮೌಲ್ಯಗಳನ್ನು ಹೊಂದಿದ್ದೇವೆ:

ಹ್ಯಾಶ್‌ಸೆಟ್: {9,5,2,6,8} // ಮೂಲತಃ b ನ ಎಲ್ಲಾ ಮೌಲ್ಯಗಳು [].

ನಾವು ರಚನೆಯನ್ನು []] ಹಾದುಹೋಗುತ್ತೇವೆ ಮತ್ತು ಅದರ ಪ್ರತಿಯೊಂದು ಅಂಶಗಳನ್ನು ತೆಗೆದುಕೊಂಡು ಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತೇವೆ.

i = 0, a [i] = 2

2 ಹ್ಯಾಶ್‌ಸೆಟ್‌ನಲ್ಲಿದೆ, ಆದ್ದರಿಂದ ಅದು ಮುದ್ರಿಸುವುದಿಲ್ಲ.

i = 1, a [i] = 6

6 ಹ್ಯಾಶ್‌ಸೆಟ್‌ನಲ್ಲಿದೆ, ಮತ್ತೆ ಅದನ್ನು ಮುದ್ರಿಸಲಾಗುವುದಿಲ್ಲ.

i = 2, a [i] = 8

8 ಹ್ಯಾಶ್‌ಸೆಟ್‌ನಲ್ಲಿದೆ, ಅದನ್ನು ಮುದ್ರಿಸಲಾಗುವುದಿಲ್ಲ.

i = 3, a [i] = 9

9 ಹ್ಯಾಶ್‌ಸೆಟ್‌ನಲ್ಲಿದೆ, ಆದ್ದರಿಂದ ಅದು ಮುದ್ರಿಸುವುದಿಲ್ಲ.

i = 4, a [i] = 5

5 ಹ್ಯಾಶ್‌ಸೆಟ್‌ನಲ್ಲಿದೆ, ಮತ್ತೆ ಅದನ್ನು ಮುದ್ರಿಸಲಾಗುವುದಿಲ್ಲ.

i = 5, a [i] = 4

4 ಹ್ಯಾಶ್‌ಸೆಟ್‌ನಲ್ಲಿಲ್ಲ, ಆದ್ದರಿಂದ ಈ ಬಾರಿ ಅದನ್ನು ಮುದ್ರಿಸಲಾಗುವುದು ಎಂದರೆ ಅದು ಒಂದು ಶ್ರೇಣಿಯಲ್ಲಿರುವ ಸಂಖ್ಯೆ [] ಆದರೆ ಅರೇ ಬಿ [] ನಲ್ಲಿಲ್ಲ ಏಕೆಂದರೆ ಮೂಲತಃ ಹ್ಯಾಶ್‌ಸೆಟ್ ಅರೇ ಬಿ [] ನ ತದ್ರೂಪಿ ಮತ್ತು ನಮ್ಮ output ಟ್‌ಪುಟ್ '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 ರಲ್ಲಿನ ಅಂಶಗಳ ಸಂಖ್ಯೆ. ನಾವು ಎರಡನೇ ರಚನೆಯ ಅಂಶಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತಿರುವುದರಿಂದ. ಆದ್ದರಿಂದ ಅಗತ್ಯವಿರುವ ಸ್ಥಳವು ಎರಡನೇ ರಚನೆಯ ಗಾತ್ರದಂತೆಯೇ ಇರುತ್ತದೆ.