注意:凡是以英文出現(xiàn)的割坠,都是題目提供的,包括答案代碼里的前幾行润樱。
題目:
Given two arrays, write a function to compute their intersection.
Example:
Given nums1 = [1, 2, 2, 1]
, nums2 = [2, 2]
, return [2]
.
Note:
- Each element in the result must be unique.
- The result can be in any order.
解析:
利用set
內(nèi)元素不唯一的特性鸭轮,可以保證最終元素不會重復。
第一次遍歷nums1
筝野,將所有元素插入sets1
。第二次遍歷時粤剧,如果元素在s1
中出現(xiàn)歇竟,則將元素插入到sets2
中。最后將結果添加到vector
中抵恋。
答案:
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
set<int> s1, s2;
for ( int i = 0; i < nums1.size(); i++) {
s1.insert(nums1[i]);
}
for ( int i = 0; i < nums2.size(); i++) {
if( s1.find(nums2[i]) != s1.end() ) {
s2.insert(nums2[i]);
}
}
vector<int> v;
for (set<int>::iterator it = s2.begin(); it != s2.end(); it++) {
v.push_back(*it);
}
return v;
}
};