概述
分析
349
- 题目要求寻找带个数组中元素的交集,并且最后输出唯一的值
- 此题的交集才真正的符合数学上的交集
- 同样,可以使用哈希表统计
350
- 350和349的区别在于最终返回的结果要输出重复元素在两个数组中出现的最少次数
- 可以和349一样使用哈希表来确定重复的元素,但是key对应的value的赋值应该有所不同
思路
代码
349
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
int hash_table[1005] = {0};
for (auto num : nums1)
hash_table[num] = 1;
vector<int> result;
for (auto num : nums2)
if (--hash_table[num] >= 0) result.push_back(num);
return result;
}
};
350
class Solution {
public:
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
unordered_map<int,int> unordered_map_int_to_int;
for (auto num : nums1)
++unordered_map_int_to_int[num];
vector<int> result;
for (auto num : nums2) {
if (unordered_map_int_to_int[num]-- > 0)
result.emplace_back(num);
}
return result;
}
};
|