leetcode-349两个数组的交集

349. 两个数组的交集

给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]
示例 2:

输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]
 
说明:
输出结果中的每个元素一定是唯一的。
我们可以不考虑输出结果的顺序。

简单的set vector使用
#include <set>
#include <map>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;

class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
      	set <int> ans;
      	int len1 = nums1.size();
      	int len2 = nums2.size();
      	set<int> st;
      	for(int i = 0; i < len1; i++) st.insert(nums1[i]);
      	for(int i = 0; i < len2; i++){
      		if(st.find(nums2[i]) != st.end()) ans.insert(nums2[i]); 
      	}
      	set<int>::iterator it;
      	vector<int> res;
      	for(it = ans.begin(); it != ans.end(); it++){
      		res.push_back(*it);
      	}
      	return res;
    }
};

int main(int argc, char const *argv[]){

	int arr1[] = {4,9,5};
	int arr2[] = {9,4,8,9,4};
	vector<int> nums1(arr1,arr1+sizeof(arr1)/sizeof(int));
	vector<int> nums2(arr2,arr2+sizeof(arr2)/sizeof(int));

	Solution solution;
	vector<int> ans = solution.intersection(nums1,nums2);
	int len = ans.size();
	for(int i = 0; i < len; i++) cout <<  ans[i] << " ";
	cout << endl;

	
	return 0;
}
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页