• 生命不息,刷题不止,简单题学习知识点


    2215. 找出两数组的不同

    难度简单7收藏分享切换为英文接收动态反馈

    给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,请你返回一个长度为 2 的列表 answer ,其中:

    • answer[0] 是 nums1 中所有 不 存在于 nums2 中的 不同 整数组成的列表。
    • answer[1] 是 nums2 中所有 不 存在于 nums1 中的 不同 整数组成的列表。

    注意:列表中的整数可以按 任意 顺序返回。

    示例 1:

    输入:nums1 = [1,2,3], nums2 = [2,4,6]
    输出:[[1,3],[4,6]]
    解释:
    对于 nums1 ,nums1[1] = 2 出现在 nums2 中下标 0 处,然而 nums1[0] = 1 和 nums1[2] = 3 没有出现在 nums2 中。因此,answer[0] = [1,3]。
    对于 nums2 ,nums2[0] = 2 出现在 nums1 中下标 1 处,然而 nums2[1] = 4 和 nums2[2] = 6 没有出现在 nums2 中。因此,answer[1] = [4,6]。

    示例 2:

    输入:nums1 = [1,2,3,3], nums2 = [1,1,2,2]
    输出:[[3],[]]
    解释:
    对于 nums1 ,nums1[2] 和 nums1[3] 没有出现在 nums2 中。由于 nums1[2] == nums1[3] ,二者的值只需要在 answer[0] 中出现一次,故 answer[0] = [3]。
    nums2 中的每个整数都在 nums1 中出现,因此,answer[1] = [] 。 
    

    提示:

    • 1 <= nums1.length, nums2.length <= 1000
    • -1000 <= nums1[i], nums2[i] <= 1000

    通过次数10,795提交次数16,126

    题解:题目说了这么多,其实就是两个集合的差。这个C++已经实现了,直接调用即可。

    1. class Solution {
    2. public:
    3. vectorint>> findDifference(vector<int>& nums1, vector<int>& nums2) {
    4. set<int> s1(nums1.begin(), nums1.end());
    5. set<int> s2(nums2.begin(), nums2.end());
    6. vector<int> v1, v2;
    7. set_difference(s1.begin(), s1.end(), s2.begin(), s2.end(), back_inserter(v1));
    8. set_difference(s2.begin(), s2.end(), s1.begin(), s1.end(), back_inserter(v2));
    9. return {v1, v2};
    10. }
    11. };

    遇到其他集合的运算了,再补充。

  • 相关阅读:
    全局坐标系与车身坐标系转换
    get与post的区别
    vscode 编译工程问题总结
    VISIO 2013软件和安装教程
    协同办公“战役”,华为输了吗?
    7-31 看电影
    什么是Jmeter?Jmeter使用的原理步骤是什么?
    英文ppt怎么翻译成中文?教你几种ppt翻译方法
    0070__Postman如何导出接口的几种方法
    O-Star|再相识
  • 原文地址:https://blog.csdn.net/weixin_41579872/article/details/126054379