一、目录
给定两个数组,编写一个函数来计算它们的交集。
二、解题思路
先将两个数组 nums1、nums2进行排序。定义一个向量num存储两数组的交集。然后按序比较两个数组中对应的元素,找到两个数组的交集(即相等的元素),放入num中。
三、代码
class Solution {
public:
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
sort(nums1.begin(),nums1.end()); //先对俩数组排序
sort(nums2.begin(),nums2.end());
int length1=nums1.size();
int length2=nums2.size();
vector<int> num; //定义一个向量num来存储两数组的交集
int index1=0;
int index2=0;
while(index1<length1 && index2<length2){
if(nums1[index1]<nums2[index2]){
index1++;
}else if(nums1[index1]>nums2[index2]){
index2++;
}else{
num.push_back(nums1[index1]); //在num的最后一个向量后插入 nums1[index1] 这个元素
index1++;
index2++;
}
}
return num;
}
};
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。