fork(1) download
  1. import java.util.Arrays;
  2.  
  3. class FindMissingNumsArray {
  4.  
  5. public static void main(String[] args) {
  6. int[] array = {1, 4, 5, 6, 9, 10, 12, 15, 19};
  7. int[] array1 = {0, 5, 6, 9, 10};
  8.  
  9. System.out.printf("Missing numbers in array are %s\n", Arrays.toString(findMissing(array)));
  10. System.out.printf("Missing numbers in array1 are %s\n", Arrays.toString(findMissing(array1)));
  11. }
  12.  
  13. private static final int[] findMissing(int[] data) {
  14. if (data == null || data.length <= 1) {
  15. // nothing missing.
  16. return new int[0];
  17. }
  18. int first = data[0];
  19. int last = data[data.length - 1];
  20. int[] missing = new int[last - first - data.length + 1];
  21. int missingCursor = 0;
  22. int expect = first;
  23. for (int value : data) {
  24. while (expect < value) {
  25. missing[missingCursor] = expect;
  26. missingCursor++;
  27. expect++;
  28. }
  29. expect++;
  30. }
  31. return missing;
  32. }
  33. }
Success #stdin #stdout 0.11s 320256KB
stdin
Standard input is empty
stdout
Missing numbers in array are [2, 3, 7, 8, 11, 13, 14, 16, 17, 18]
Missing numbers in array1 are [1, 2, 3, 4, 7, 8]