• LeetCode350. 两个数组的交集 II


     1 /**
     2  *
     3 给定两个数组,编写一个函数来计算它们的交集。
     4 示例 1:
     5 
     6 输入:nums1 = [1,2,2,1], nums2 = [2,2]
     7 输出:[2,2]
     8 示例 2:
     9 
    10 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
    11 输出:[4,9]
    12 
    13 来源:力扣(LeetCode)
    14 链接:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii
    15 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
    16  */
    17 
    18 #include<vector>
    19 #include <set>
    20 #include <iostream>
    21 
    22 using namespace std;
    23 
    24 class Solution {
    25 public:
    26     vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
    27         sort(nums1.begin(), nums1.end());
    28         sort(nums2.begin(), nums2.end());
    29         vector<int> result;
    30 //        set_intersection 用于求两个集合的交集,两个区间必须是有序的,所以上面排了下序
    31 //        back_inserter用于在末尾添加元素,将集合从末尾添加到result中
    32         set_intersection(nums1.begin(), nums1.end(), nums2.begin(), nums2.end(), back_inserter(result));
    33         return result;
    34     }
    35 };
    36 
    37 int main(){
    38     Solution s;
    39     vector<int> vec1,vec2,vec3;
    40     vec1 = { 4,9,5 };
    41     vec2 = { 9,4,9,8,4 };
    42     vec3 = s.intersect(vec1,vec2);
    43     vector<int>::iterator it;
    44     for (it = vec3.begin(); it !=vec3.end() ; it++) {
    45         cout<<*it<<endl;
    46     }
    47     return 0;
    48 }

    总结:

    //在使用之前必须对两个集合先排序

    //总结 set_intersection()求交集/ set_union()求并集/ set_difference()求差集
    //形式:set_intersection(nums1.begin(), nums1.end(), nums2.begin(), nums2.end(), inserter(res, res.begin()))

  • 相关阅读:
    C语言编译多文件
    vs(visual studio 2019)恢复默认设置
    everything 有文件搜不到
    potplayer显示右侧插入列表消息
    ubuntu 关机、重启命令
    post&get请求总结
    C# string格式的日期时间字符串转为DateTime类型
    css position: absolute、relative详解
    在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
    ASP.NET获取客户端及服务器的信息
  • 原文地址:https://www.cnblogs.com/xwxz/p/13324001.html
Copyright © 2020-2023  润新知