三个有序数组的交集

给出三个均为 严格递增排列 的整数数组 arr1,arr2 和 arr3。

返回一个由 仅 在这三个数组中 同时出现 的整数所构成的有序数组。

 

示例:

输入: arr1 = [1,2,3,4,5], arr2 = [1,2,5,7,9], arr3 = [1,3,4,5,8]
输出: [1,5]
解释: 只有 1 和 5 同时在这三个数组中出现.
 

提示:

1 <= arr1.length, arr2.length, arr3.length <= 1000
1 <= arr1[i], arr2[i], arr3[i] <= 2000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/intersection-of-three-sorted-arrays
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

class Solution {
public:
    vector arraysIntersection(vector& arr1, vector& arr2, vector& arr3) {
        set myset1(arr1.begin(), arr1.end());
        set myset2(arr2.begin(), arr2.end());
        set myset3(arr3.begin(), arr3.end());
        std::vector::iterator it;
        vector nums(5000);
        it = set_intersection(myset1.begin(), myset1.end(),myset2.begin(), myset2.end(),nums.begin());
        //nums.resize(it-nums.begin()); 
        myset1 = set(nums.begin(), nums.end());
        
        it = set_intersection(myset1.begin(), myset1.end(),myset3.begin(), myset3.end(),nums.begin());
        nums.resize(it-nums.begin()); 
        return nums;
    }
};

 

你可能感兴趣的:(leetcode)