import java.util.Arrays;
class FindMissingNumsArray {
public static void main
(String[] args
) { int[] array = {1, 4, 5, 6, 9, 10, 12, 15, 19};
int[] array1 = {0, 5, 6, 9, 10};
System.
out.
printf("Missing numbers in array are %s\n",
Arrays.
toString(findMissing
(array
))); System.
out.
printf("Missing numbers in array1 are %s\n",
Arrays.
toString(findMissing
(array1
))); }
private static final int[] findMissing(int[] data) {
if (data == null || data.length <= 1) {
// nothing missing.
return new int[0];
}
int first = data[0];
int last = data[data.length - 1];
int[] missing = new int[last - first - data.length + 1];
int missingCursor = 0;
int expect = first;
for (int value : data) {
while (expect < value) {
missing[missingCursor] = expect;
missingCursor++;
expect++;
}
expect++;
}
return missing;
}
}
aW1wb3J0IGphdmEudXRpbC5BcnJheXM7CgpjbGFzcyBGaW5kTWlzc2luZ051bXNBcnJheSB7CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIGludFtdIGFycmF5ID0gezEsIDQsIDUsIDYsIDksIDEwLCAxMiwgMTUsIDE5fTsKICAgICAgICBpbnRbXSBhcnJheTEgPSB7MCwgNSwgNiwgOSwgMTB9OwogICAgICAgIAogICAgICAgIFN5c3RlbS5vdXQucHJpbnRmKCJNaXNzaW5nIG51bWJlcnMgaW4gYXJyYXkgYXJlICVzXG4iLCBBcnJheXMudG9TdHJpbmcoZmluZE1pc3NpbmcoYXJyYXkpKSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGYoIk1pc3NpbmcgbnVtYmVycyBpbiBhcnJheTEgYXJlICVzXG4iLCBBcnJheXMudG9TdHJpbmcoZmluZE1pc3NpbmcoYXJyYXkxKSkpOwogICAgfQogICAgCiAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnRbXSBmaW5kTWlzc2luZyhpbnRbXSBkYXRhKSB7CiAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCB8fCBkYXRhLmxlbmd0aCA8PSAxKSB7CiAgICAgICAgICAgIC8vIG5vdGhpbmcgbWlzc2luZy4KICAgICAgICAgICAgcmV0dXJuIG5ldyBpbnRbMF07CiAgICAgICAgfQogICAgICAgIGludCBmaXJzdCA9IGRhdGFbMF07CiAgICAgICAgaW50IGxhc3QgPSBkYXRhW2RhdGEubGVuZ3RoIC0gMV07CiAgICAgICAgaW50W10gbWlzc2luZyA9IG5ldyBpbnRbbGFzdCAtIGZpcnN0IC0gZGF0YS5sZW5ndGggKyAxXTsKICAgICAgICBpbnQgbWlzc2luZ0N1cnNvciA9IDA7CiAgICAgICAgaW50IGV4cGVjdCA9IGZpcnN0OwogICAgICAgIGZvciAoaW50IHZhbHVlIDogZGF0YSkgewogICAgICAgICAgICB3aGlsZSAoZXhwZWN0IDwgdmFsdWUpIHsKICAgICAgICAgICAgICAgIG1pc3NpbmdbbWlzc2luZ0N1cnNvcl0gPSBleHBlY3Q7CiAgICAgICAgICAgICAgICBtaXNzaW5nQ3Vyc29yKys7CiAgICAgICAgICAgICAgICBleHBlY3QrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICBleHBlY3QrKzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG1pc3Npbmc7CiAgICB9Cn0=
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]