Вопрос о моем коде (CPP) HyungJun GuWeek 4 · 2 часа назад я написал свой программный код назначения и думаю, что есть какая-то проблема.
Прежде чем задавать оригинальный вопрос, я попробовал пример экзамен для проверки правильности или неправильности моего кода.
Первоначальная проблема:
Цель этой задачи - реализовать вариант алгоритма 2-SUM, описанный в лекциях этой недели.
Файл содержит 1 миллион целых чисел, как положительных, так и отрицательных (может быть несколько повторений!). Это ваш массив целых чисел, в i ^ {th} i-й строке которого указан i ^ { th} i-я запись массива.
Ваша задача - вычислить количество целевых значений tt в интервале [-10000,10000] (включительно), чтобы в них были различные числа x, yx, y в входной файл, который удовлетворяет x + y = tx + y = t. (ПРИМЕЧАНИЕ: для обеспечения отличимости требуется сложение алгоритма из лекции в одну строку.)
Напишите свой числовой ответ c (целое число от 0 до 20001) в предоставленном месте.
[образец]
-3
-1
1
2
9
11
7
6
2
, и я получил правильный ответ, который равен 8, но всякий раз, когда я пытался скомпилировать мой код с исходной базой данных, он терпел неудачу.
Мне интересно, если мой код неправильный или мой компьютер не так.
Так что, плз, если кто-нибудь может мне помочь, дайте мне знать, в чем проблема. :)
Спасибо всем.
#include <unordered_set>
#include <fstream>
#include <iostream>
#define SIZE 1000000
#define MIN -10000
#define MAX 10000
using namespace std;
int main()
{
fstream file;
file.open("2sum.txt");
long long data_[SIZE];
for (int i = 0; i < SIZE; i++)
{
file >> data_[i];
}
unordered_set<long long> table;
for (int i = 0; i < SIZE; i++)
table.insert(data_[i]);
int count = 0;
for (long long i = MIN; i <= MAX; i++)
{
cout << "for " << i << " ~~ " << endl;
unordered_set<long long> :: iterator itr = table.begin();
for(itr = table.begin(); itr != table.end(); itr++)
{
long long y = i - (*itr);
if(table.find(y) != table.end() && (*itr) != y)
{
cout << "found" << endl;
count++; break;
}
}
}
cout << count << endl;
return 0;
}