zoukankan      html  css  js  c++  java
  • 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()))

  • 相关阅读:
    Self referencing loop detected for property 错误
    路径 序列化
    css基础回顾
    React 随笔二
    Reactnative 随笔一
    值类型和引用类型 装箱和拆箱 类和结构的异同 接口抽象类异同
    多语言配置--LogisticsPlatform物流平台系统
    word-wrap&&word-break,奇偶行、列设置样式
    easyUI 的tree 修改节点,sql递归查询
    跳转页面,传递参数——android
  • 原文地址:https://www.cnblogs.com/xwxz/p/13324001.html
Copyright © 2011-2022 走看看