Missing Numbers

Given two arrays of integers, find which elements in the second array are missing from the first array. 

Example:

Input:  n=6, arr[]={7,2,5,3,5,3}, m=8, arr[]={7,2,5,4,6,3,5,3}
Output: 4 6

Approach

Java

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class MissingNumbers {
    public static void main(String[] args) {
        int[] arr = { 725353 };
        int[] brr = { 72546353 };
        int[] result = missingNumbers(arr, brr);
        System.out.println(Arrays.toString(result));
    }

    private static int[] missingNumbers(int[] arrint[] brr) {
        int f[] = new int[10001];
        for (int i = 0; i < brr.length; i++)
            f[brr[i]]++;
        for (int i = 0; i < arr.length; i++)
            f[arr[i]]--;
        List<Integerres = new ArrayList<Integer>();
        for (int i = 1; i < 10001; i++)
            if (f[i] > 0)
                res.add(i);
        return res.stream().mapToInt(Integer::intValue).toArray();
    }
}


C++

#include <bits/stdc++.h>
using namespace std;

vector<intmissingNumbers(vector<intarrvector<intbrr)
{
    int f[10001] = {0};
    for (int i = 0i < brr.size(); i++)
        f[brr[i]]++;
    for (int i = 0i < arr.size(); i++)
        f[arr[i]]--;
    vector<intres;
    for (int i = 1i < 10001i++)
        if (f[i])
            res.push_back(i);
    return res;
}

int main()
{

    int n = 6;
    vector<intarr = {725353};

    int m = 8;

    vector<intbrr = {72546353};

    vector<intresult = missingNumbers(arrbrr);

    for (int i = 0i < result.size(); i++)
    {
        cout << result[i];

        if (i != result.size() - 1)
        {
            cout << " ";
        }
    }
    cout << "\n";

    return 0;
}


No comments:

Post a Comment