Занятие 11. Справочник

Занятие 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;
}