所以我一直在试用Codility并最终得到这段代码:
int solution(vector<int> &A)
{
std::vector<int> min3(4);
std::vector<int> max3(4);
min3[0] = max3[2] = A[0];
min3[1] = max3[1] = A[1];
min3[2] = max3[0] = A[2];
for(int i=3;i<A.size();i++)
{
min3[3] = max3[3] = A[i];
std::sort(min3.begin(),min3.end());
std::sort(max3.begin(),max3.end(),std::greater<int>());
}
return std::max(max3[0]*max3[1]*max3[2],max3[0]*min3[0]*min3[1]);
}
,我所看到的方式,其时间复杂度为O(N); 然而,在O(N * log(N))估计上,Codility insists。你能指出谁是正确的,为什么?非常感谢!