牛客NC313 两个数组的交集 C++
思路🤔:
用哈希表存储第一个数组,再和第二个数组对比,对比成功就添加到新的数组中,之后将哈希表的该位置变为false,防止重复添加。这里数据范围仅有1000,所以我们可以自己创建一个bool数组来当哈希表,节省new的时间。
代码:
class Solution { bool hash[1010] = { 0 }; public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { vector<int> ret; for(auto x : nums1) //添加第一个数组 { hash[x] = true; } for(auto x : nums2) { if(hash[x]) //为true就表示有交集 { ret.push_back(x); //添加到交集数组中 hash[x] = false; } } return ret; } };