为了支付
O(N)
您可以使用的额外空间
std::set_intersection
O(2(N1+N2-1))
并生成两个向量之间所有公共元素的“集合”。然后可以检查新“set”的大小来计算A、B、C和U。
int main()
{
std::vector<int> v1{1,2,3,4,5,6,7,8};
std::vector<int> v2{5,7,9,10};
std::vector<int> intersection;
std::set_intersection(v1.begin(), v1.end(),
v2.begin(), v2.end(),
std::back_inserter(intersection));
if (intersection.size() == v2.size() && v2.size() > 0)
std::cout << "A";
else if (intersection.size() > 0)
std::cout << "B";
else if (intersection.size() == 0 && v2.size() > 0)
std::cout << "C";
else
std::cout << "U";
}