牛客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;} };