题干解读:要求两个序列的交集,并以从小到大的顺序输出

思路:由于要从小到大输出可以先使用sort函数来排序序列,

由于只要输出交集,所以不需要重复的元素,所以在排序好后需要去重.

最后利用双指针法来找交际,直到有一个指针知道了序列的末尾.

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums1 int整型vector 
     * @param nums2 int整型vector 
     * @return int整型vector
     */
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        sort(nums1.begin(),nums1.end());
        for(int i=0;i<nums1.size();i++){
            if(i!=nums1.size()-1 && nums1[i] == nums1[i+1]){
                nums1.erase(nums1.begin()+i+1);
                i--;
            }

        }
        sort(nums2.begin(),nums2.end());
        for(int i=0;i<nums2.size();i++){
            if(i!=nums2.size()-1 && nums2[i] == nums2[i+1]){
                nums2.erase(nums2.begin()+i+1);
                i--;
            }

        }
        
        vector<int> ans;
        int i=0,j=0;
        while(i!=nums1.size()&&j!=nums2.size()){
            if(nums1[i] == nums2[j]){
                ans.push_back(nums1[i]);
                i++;
                j++;
            }else if(nums1[i]>nums2[j]){
                j++;
            }else if(nums1[i]<nums2[j]){
                i++;
            }
        }
        return ans;


    }
};