原题链接
参考c++代码
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2)
{
unordered_set<int> result_set; // 存放结果
unordered_set<int> nums_set(nums1.begin(), nums1.end());
#unordered容器内部存储的各个元素的值都互不相等,且不能被修改
for (int num : nums2) {
// 发现nums2的元素 在nums_set里又出现过
if (nums_set.find(num) != nums_set.end())
#find是C++ STL中的内置函数,该函数将迭代器返回到在集合容器中搜索的元素。如果找不到该元素,则迭代器将指向集合中最后一个元素之后的位置
{
result_set.insert(num);#将num存入结果中
}
}
return vector<int>(result_set.begin(), result_set.end());
#复制[begin,end)区间内另一个数组的元素到vector中
};
python
集合(set)是一个无序的不重复元素序列。
class Solution:
def intersection(self, nums1, nums2):
result=[]
nums_set1=set(nums1)
nums_set2=set(nums2)
for num in nums_set2:
if num in nums_set1:
result.append(num)
return result
test=Solution()
print(test.intersection(nums1 = [4,9,5], nums2 = [9,4,9,8,4]))