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


    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. };

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

  • 相关阅读:
    单例模式之DCL(Double-Checked Locking)
    elementui图片上传转为base64字符串
    华为云云服务器云耀L实例评测 | 华为云云服务器实例新品全面解析
    通过Sealos 180秒部署一套K8S集群
    算法基础:归并排序(超详细)
    重上吹麻滩——段芝堂创始人翟立冬游记
    CC3
    设计模式的思考(四)
    聊天机器人框架Rasa资源整理
    位移贴图的原理和作用
  • 原文地址:https://blog.csdn.net/weixin_41579872/article/details/126054379