من یک آرایه n عنصری دارم میخواهم عنصر n ام در آرایه ای که شامل ضرب عناصر این آرایه در هم باشه رو پیدا کنم .
این الگوریتم فعلی هستش :
vector<int> arr={....};
vector<int> temp;
//O(n^2)
for(int i=0;i<arr.size();i++)
for(int j=0;j<arr.size();j++)
temp.push_back(arr[i]*arr[j]);
sort(temp.begin(),temp.end());//O(nlogn)
return temp[n];//O(1)
که (O(n^2 هستش آیا راهی بهتر با پیچیدگی زمانی کمتر وجود داره ؟