С++ Нахождение общих элементов в двух массивах, модификация кода

Прошу помочь в следующем вопросе: при сдаче программе на проверку задачи не набираю пару баллов по причине "Time out" (длительная обработка решения). Возможно ли оптимизировать код? Или я допустил где то ошибку. Код прилагаю. Заранее спасибо

vector <int> array1;
vector <int> array2;
vector <int> finalArray;

int size1 = 0;
int size2 = 0;
cin >> size1;
array1.resize(size1);
pushArray(array1);
cin >> size2;
array2.resize(size2);
pushArray(array2);
finalArray.resize(0);

int repeat = 0;
int count = 0;
for (int i = 0; i < array1.size(); i++)
{
    for (int j = 0; j < array2.size(); j++)
    {
        if (array1[i] == array2[j])
        {
            for (int k = 0; k < finalArray.size(); k++)
            {
                if (finalArray[k] == array2[j]) repeat++;
            }

            if (repeat == 0)
            {
                finalArray.push_back(array2[j]);
                count++;
            }
            repeat = 0;      
        }
    }
}

if (count > 0)
{
    cout << count << " "; 
    printArray(finalArray);
}
else
{
    cout << count;
}

Ответы (0 шт):