本文共 1019 字,大约阅读时间需要 3 分钟。
给定两个数组,编写一个函数来计算它们的交集。以下是实现思路和代码。
unordered_set
来存储元素,利用快速查找和插入的特性提高效率。#include#include using namespace std;vector intersection(vector & nums1, vector & nums2) { unordered_set unorset_nums1; // 遍历第一个数组,记录所有元素 for (int x : nums1) { if (unorset_nums1.find(x) == unorset_nums1.end()) { unorset_nums1.insert(x); } } unordered_set intersection; // 遍历第二个数组,寻找交集 for (int y : nums2) { if (unorset_nums1.find(y) != unorset_nums1.end() && intersection.find(y) == intersection.end()) { intersection.insert(y); } } vector ans; for (int z : intersection) { ans.push_back(z); } return ans;}
通过上述方法,我们可以高效地找到两个数组的交集。该算法利用了集合的快速查找特性,确保了时间复杂度的优化。
转载地址:http://kgbvz.baihongyu.com/