Занятие 11. Справочник
Функция mex (минимальный элемент, не встречаемый во множестве неотрицательных чисел).
//c - реальное количество элементов в массиве a
static int mex (int[] a, int c)
{
int D = 1000; //максимально возможное количество вершин
boolean[] used = new boolean[D+1];
for (int i = 0; i < c; i++)
if (a[i] <= D)
used[a[i]] = true;
int result;
//условие выхода не нужно
for (int i=0; ; ++i)
if (!used[i]) {
result = i;
break;
}
for (int i = 0; i < c; i++)
if (a[i] <= D)
used[a[i]] = false;
return result;
}