Given two arrays, write a function to compute their intersection.
Example: Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].
Note:
Each element in the result must be unique.
The result can be in any order.
思路:本题是要找出两个vector的并集,并且元素是不重复的。为了实现元素不重复,我采用先把两个vector排序,然后以vector1为基准,如果vector1里出现了重复的元素,或者,
如果vector1里的元素<vector2里的元素,
则break继续循环下一个。
答案:
class Solution { public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { vector<int> v; sort(nums1.begin(),nums1.end()); sort(nums2.begin(),nums2.end()); for(int i=0;i<nums1.size();i++) { for(int k=0;k<nums2.size();k++) { if(i>0&&nums1[i]==nums1[i-1]) break; else if(nums1[i]==nums2[k]) { v.push_back(nums1[i]); break; } else if(nums1[i]<nums2[k]) break; } } return v; } };
转载请注明原文地址: https://ju.6miu.com/read-16883.html