LeetCode*349. Intersection of Two Arrays

LeetCode題目鏈接

注意:凡是以英文出現的,都是題目提供的,包括答案代碼里的前幾行。

題目:

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內元素不唯一的特性,可以保證最終元素不會重復。
第一次遍歷nums1,將所有元素插入sets1。第二次遍歷時,如果元素在s1中出現,則將元素插入到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;
    }
};
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容