我试图通过首先对向量进行排序然后将向量的最后两个元素相乘来解决最大成对乘积问题。
它适用于较小的数字,但不适用于 10^5 数字。
任何人都可以看看并提供帮助吗?
这是我的功能
long long MaxPairwiseProductFast(const vector<int> &number)
{
long long result = 0;
long n = number.size();
result = number.at(n-1) * number.at(n-2);
return result;
}
这是我的主要功能
int main()
{
int n;
cin>>n;
vector<int>numbers(n);
for(int i = 0; i <n; i++){
cin>>numbers[i];
}
sort(numbers.begin(), numbers.end());
long long result = MaxPairwiseProductFast(numbers);
cout<<result<<"\n";
return 0;
}
它适用于较小的范围,但即使在使用 long long 后也不适用于较大的范围