unique 包含在头文件<algorithm>中的函数,使用时数组必须有序排列。
返回值:返回值为去重后的不重复数列中最后一个元素的下一个元素的地址;
注意:unique函数并不是真正去重,而是将重复元素置于数组之后;
class Solution { public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { // write code here sort(nums1.begin(),nums1.end());//首先将两个数组进行排序; sort(nums2.begin(),nums2.end()); vector<int>vec;//创建交集数组; int l1=unique(nums1.begin(),nums1.end())-nums1.begin();//利用unique函数获取不同元素的个数 int l2=unique(nums2.begin(),nums2.end())-nums2.begin(); int i=0,j=0;//定义双指针; while(i<l1&&j<l2){ if(nums1[i]==nums2[j]){//若两个指针所指的元素相同,则放入交集数组,同时两个指针均向后移; vec.push_back(nums1[i]); i++; j++; } else{//若不同 if(nums1[i]<nums2[j]){//若nums1中得知小于nums2中的值,nums1的指针后移; i++; } else{//反之nums2的指针后移; j++; } } } return vec;//返回数组; } };