
返回两个数组的交。
nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
vector<int> intersection(vector<int> nums1, vector<int> nums2) { vector<int> output; sort(nums1.begin(), nums1.end()); sort(nums2.begin(), nums2.end()); int n1 = nums1.size(); int n2 = nums2.size(); int i=0, j=0; int last = 0; while(i<n1 && j<n2) { if(nums1[i] < nums2[j]) i++; else if(nums1[i] > nums2[j]) j++; else { if((!output.size()) || (nums1[i]>last)) { output.push_back(nums1[i]); last = nums1[i]; } i++; j++; } } return output; }
|
近期评论