псевдокод:
for(int i = 0 ; i < Int.MAX ; i++)
{
if(i is not in list)
{
return i
}
}
Конечно, возможно, это можно оптимизировать, но в качестве первоначального черновика, чтобы сдать ваши тесты (у вас есть тесты, верно), это очень простое решение, которое даст вам уверенность в том, что ваши тесты правильно, освобождая вас для оптимизации при необходимости.