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())]
相关推荐
谎言西西里3 小时前
LeetCode 热题100 --- 双指针专区
算法
leo__5206 小时前
基于两步成像算法的聚束模式SAR MATLAB实现
开发语言·算法·matlab
前端小白在前进7 小时前
力扣刷题:在排序数组中查找元素的第一个和最后一个位置
数据结构·算法·leetcode
某林2128 小时前
基于SLAM Toolbox的移动机器人激光建图算法原理与工程实现
stm32·嵌入式硬件·算法·slam
修炼地8 小时前
代码随想录算法训练营第四十三天 | 图论理论基础、深搜理论基础、卡码网98. 所有可达路径、797. 所有可能的路径、广搜理论基础
算法·深度优先·图论
iAkuya8 小时前
(leetcode)力扣100 23反转链表(迭代||递归)
算法·leetcode·链表
剪一朵云爱着8 小时前
PAT 1095 Cars on Campus
算法·pat考试
FreeBuf_9 小时前
朝鲜黑客组织“传染性面试“瞄准macOS:新型“DriverFixer“窃密工具浮出水面
macos·面试·职场和发展
牛客企业服务9 小时前
AI面试实用性解析:不是“能不能用”,而是“怎么用好”
人工智能·面试·职场和发展
MicroTech20259 小时前
激光点云快速配准算法创新突破,MLGO微算法科技发布革命性点云配准算法技术
人工智能·科技·算法