leetcode 2
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2,2]
示例 2:
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[4,9]
class Solution { public: vector<int> intersect(vector<int>& nums1, vector<int>& nums2) { vector <int> temp; sort(nums1.begin(),nums1.end()); sort(nums2.begin(),nums2.end()); int i,j; i=j=0; while(i<nums1.size() && j<nums2.size()){ if(nums1[i]==nums2[j]) { temp.push_back(nums1[i]); i++; j++; } else if(nums1[i]<nums2[j]) { i++; } else j++; } return temp; } };
注意:采用双指针的方法,先对两个vector排序,然后二者同时移动。双重循环的方法结果不对。