Advertisement
conaldev

Missing Numbers By Minh Conal

Jul 18th, 2020
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.30 KB | None | 0 0
  1. import java.io.*;
  2. import java.math.*;
  3. import java.security.*;
  4. import java.text.*;
  5. import java.util.*;
  6. import java.util.concurrent.*;
  7. import java.util.regex.*;
  8.  
  9. public class Solution {
  10.  
  11.     // Complete the missingNumbers function below.
  12.     static int[] missingNumbers(int[] arr, int[] brr) {
  13.         int countA[] = new int[10000];
  14.         int countB[] = new int[10000];
  15.         Arrays.sort(arr);
  16.         Arrays.sort(brr);
  17.         int min = brr[0];
  18.         int max = brr[brr.length -1];
  19.         for(int i=0;i<arr.length;i++){
  20.             countA[arr[i]]++;
  21.         }
  22.         for(int i=0;i<brr.length;i++){
  23.             countB[brr[i]]++;
  24.         }
  25.         ArrayList<Integer> ansList = new ArrayList<>();
  26.         for(int i=min;i<=max;i++){
  27.             if(countA[i]<countB[i])
  28.                 ansList.add(i);
  29.         }
  30.         int[] ans = ansList.stream().mapToInt(i -> i).toArray();
  31.         return ans;
  32.     }
  33.  
  34.     private static final Scanner scanner = new Scanner(System.in);
  35.  
  36.     public static void main(String[] args) throws IOException {
  37.         BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));
  38.  
  39.         int n = scanner.nextInt();
  40.         scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
  41.  
  42.         int[] arr = new int[n];
  43.  
  44.         String[] arrItems = scanner.nextLine().split(" ");
  45.         scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
  46.  
  47.         for (int i = 0; i < n; i++) {
  48.             int arrItem = Integer.parseInt(arrItems[i]);
  49.             arr[i] = arrItem;
  50.         }
  51.  
  52.         int m = scanner.nextInt();
  53.         scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
  54.  
  55.         int[] brr = new int[m];
  56.  
  57.         String[] brrItems = scanner.nextLine().split(" ");
  58.         scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
  59.  
  60.         for (int i = 0; i < m; i++) {
  61.             int brrItem = Integer.parseInt(brrItems[i]);
  62.             brr[i] = brrItem;
  63.         }
  64.  
  65.         int[] result = missingNumbers(arr, brr);
  66.  
  67.         for (int i = 0; i < result.length; i++) {
  68.             bufferedWriter.write(String.valueOf(result[i]));
  69.  
  70.             if (i != result.length - 1) {
  71.                 bufferedWriter.write(" ");
  72.             }
  73.         }
  74.  
  75.         bufferedWriter.newLine();
  76.  
  77.         bufferedWriter.close();
  78.  
  79.         scanner.close();
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement