leetcode:找出两数组不同

找出两数组的不同

easy

给你两个下标从 0 开始的整数数组 nums1nums2 ,请你返回一个长度为 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] = [] 。 

哈希集合

python 复制代码
class Solution:
    def findDifference(self, nums1: List[int], nums2: List[int]) -> List[List[int]]:
        nums1 = set(nums1)
        nums2 = set(nums2)
        same_num = nums1 & nums2
        return [list(nums1 - same_num), list(nums2 - same_num)]

递归

python 复制代码
class Solution(object):
    def findDifference(self, nums1, nums2):
        se1, se2 = set(nums1), set(nums2)  # 使用集合去重
        answer = [list(se1 - se2), list(se2 - se1)]
        return answer

字典(效率低)

python 复制代码
class Solution:
    def findDifference(self, nums1: List[int], nums2: List[int]) -> List[List[int]]:
        dict1 = {}
        dict2 = {}
        for i, n in enumerate(nums1):
            if n not in nums2:
                dict1[n] = i

        for i, n in enumerate(nums2):
            if n not in nums1:
                dict2[n] = i
            
        return [list(dict1.keys()), list(dict2.keys())]
相关推荐
可编程芯片开发25 分钟前
UPFC统一潮流控制器的simulink建模与仿真
算法
小小仙子1 小时前
矢量网络分析仪如何测试S参数的?
人工智能·算法·机器学习
中微极客3 小时前
降维算法75倍加速:从PCA到稀疏字典学习的工程实践
人工智能·学习·算法
storyseek3 小时前
前缀和实现Kogge-Stone算法
数据结构·算法
元Y亨H3 小时前
开发者必须掌握的十大核心算法
算法
元Y亨H3 小时前
深度解构:数据结构与算法的理论基石与工程演进
数据结构·算法
元Y亨H4 小时前
数据结构与算法的通俗指南
数据结构·算法
2301_764441334 小时前
用动力学系统(微分方程)为 Kernberg 的客体关系单元提供数学化的操作定义,把“自体—客体“这对心理结构建模成一个二维耦合系统
数据结构·python·算法·数学建模
林泽毅4 小时前
PyTRIO快速入门(二):Datum构建
人工智能·算法·产品
keep intensify4 小时前
最长有效括号
算法·leetcode·动态规划