Я сомневаюсь, что это проблема с памятью, потому что он уже сказал, что программа действительно работает, и он вводит 100000000.
Одна вещь, которую я заметил, в условии if вы выполняете поиск [n], даже если n == MAXSIZE (в этом точном состоянии). Поскольку C ++ использует 0-индексированные векторы, это будет 1 за концом вектора.
if (n < MAXSIZE) {
...
}
...
if (temp >= lookup[n] ) {
lookup[n] = temp;
}
return lookup[n];
Я не могу догадаться, что делает алгоритм, но я думаю, что закрывающая скобка} первого "if" должна быть ниже, и вы могли бы вернуть ошибку в этом граничном условии.