#include <algorithm>
#include <vector>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums1 int整型vector 
     * @param nums2 int整型vector 
     * @return int整型vector
     */
    void deduplicate(vector<int>& nums){
        sort(nums.begin(),nums.end());
        nums.erase(unique(nums.begin(),nums.end()),nums.end());
    }
    
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        deduplicate(nums1);
        deduplicate(nums2);
        vector<int> res;
        int i1=0,i2=0;
        while(i1<nums1.size() && i2<nums2.size()){
            if(nums1[i1]<nums2[i2]) ++i1;
            else if(nums1[i1]>nums2[i2]) ++i2;
            else{
                res.push_back(nums1[i1]);
                ++i1,++i2;
            }
        }

        return res;
    }
};