标签:ret end 关联 set turn bsp div cto section
这里给出两种方法
方法一:用无序关联容器map,用map可以进行很多操作,但是这个题里面用map看起来稍微麻烦一点点。
1 static int wing=[]() 2 { 3 std::ios::sync_with_stdio(false); 4 cin.tie(NULL); 5 return 0; 6 }(); 7 8 class Solution 9 { 10 public: 11 vector<int> intersection(vector<int>& nums1, vector<int>& nums2) 12 { 13 vector<int> res; 14 if(nums1.size()==0||nums2.size()==0) 15 return res; 16 unordered_map<int,int> i_to_i; 17 for(int i:nums1) 18 i_to_i[i]=1; 19 20 for(int i:nums2) 21 { 22 if(i_to_i[i]==0) 23 continue; 24 i_to_i[i]++; 25 if(i_to_i[i]==2) 26 res.push_back(i); 27 } 28 vector<int> &k=res; 29 return k; 30 } 31 };
方法二:用set,这种关联容器可进行的操作和运算较少,但是用在这里恰到好处
1 class Solution 2 { 3 public: 4 vector<int> intersection(vector<int>& nums1, vector<int>& nums2) 5 { 6 unordered_set<int> s(nums1.begin(), nums1.end()); 7 vector<int> res; 8 for (auto num : nums2) 9 { 10 if (s.find(num) != s.end()) 11 { 12 res.push_back(num); 13 s.erase(num); 14 } 15 } 16 return res; 17 } 18 };
349. Intersection of Two Arrays
标签:ret end 关联 set turn bsp div cto section
原文地址:https://www.cnblogs.com/zhuangbijingdeboke/p/9093060.html