这是一个大数据,包含一亿个整数,但其中与其他相同的整数有一个不同的值,例如:1,1,1,1,1,1,1,42,1,1,1, 1..但是,我不知道我的以下代码发生了什么。
int main() {
vector <int> data;
cout << "Enter same numbers " << " and a different one( negative to be end) :" << endl;
int value;
while (cin >> value && value > 0) {
data.push_back(value);
}
int unique_value;
int size = data.size();
if (data[0] != data[size - 1]) {
if (data[0] != data[2]) {
unique_value = data[0];
} else {
unique_value = data[size - 1];
}
cout << "found the unique number: " << unique_value << endl;
exit(0);
}
int low = 1;
int high = size - 2;
while (high > low) {
if (data[high] != data[low]) {
//其中必有一个是不同的,只要和data[0]就能得到结果
if (data[high] != data[0]) {
unique_value = data[high];
} else {
unique_value = data[low];
}
break;
}
}
if (high == low) {
unique_value = data[high];
}
cout << "found the unique number: " << unique_value << endl;
return 0;
}