Превышено ограничение по времени ошибки C ++

0

Я программирую в C++ некоторые проблемы на автоматизированной платформе, и это дает мне ограничение по времени, я тестировал код в терминале, и я не знаю, почему он не перестает ждать номеров, и я устанавливаю предел для n числа в цикле while. Он должен остановиться, когда я ввожу n чисел. Здесь код:

#include<iostream>
#include<vector>
using namespace std;


int main(){
    int n;
    while (cin >> n){
        vector<int> v(n);
        int count = 0;
        for (int i = 0; i < n; ++i){
            cin >> v[i];
            bool unique = true;
            for (int j = 0; j < i; ++j){

                if (v[i] == v[j]){
                    unique = false;
                    j = 1;
                }
            }
            if (unique)
            ++count;
        }
            cout << count << endl;
    }
}
  • 2
    j = 1; ? Что то, что для?
  • 1
    если вы нажмете дублирующий элемент, вы установите j = 1 и можете продолжать цикл навсегда ...
Показать ещё 3 комментария
Теги:
vector
iostream

1 ответ

2
Лучший ответ

Вы останавливая программу со следующим утверждением во внутреннем for цикла:

j = 1;

Я думаю, что вы можете безопасно удалить эту строку, и она должна начать работать по назначению, возможно, изменив внутренний цикл:

for (int j = 0; j < i && unique; ++j) { ... }
  • 0
    Я только должен был удалить J = 1 :)
  • 0
    Его метод быстрее, поскольку вы выходите из цикла, когда получаете не уникальный элемент.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню