找出两数组的不同

Posted 算法与编程之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找出两数组的不同相关的知识,希望对你有一定的参考价值。

  1. 问题描述

给你两个下标从 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]]

示例2:

输入:nums1 = [1,2,3,3], nums2 = [1,1,2,2]

输出:[[3],[]]

来源:力扣(LeetCode)

2.算法描述

我们利用暴力法来看一下这个题目:首先考虑一下如何将列表里的整数输入进去,这里我是利用map函数将输入的字符串数字按“,”分开,然后依次转化为整数,再经过for……in遍历后添加至创建列表nums1、nums2中,这样一个列表式的输入就完成了(如:[1, 2, 3, 4])。随后将两个列表里的值依次遍历出来,第一步:遍历nums1中的数来依次判断是否在nums2中(不是则加入列表answer[0]中);第二步:遍历nums2中的数来依次判断是否存在于nums2中(不是则加入answer[1]中)。为了避免列表里的整数存在重复的现象(如输出结果为:[[3, 3], [4, 5]],而期待效果为:[[3], [4, 5]]),我们在遍历时使用set(nums1或者nums2)函数。最后直接输出answer就可以得出想要结果。

3. 实验讨论与结果

找出其中的内在逻辑,并写出过程,带入值,输出结果。

list=map(int,input(":").split(","))
nums1=[]
for j in list:
   nums1.append(j)
list1=map(int,input(":").split(","))
nums2=[]
for k in list1:
   nums2.append(k)
answer = [[], []]
for i in set(nums1):
   if i not in nums2:
       answer[0].append(i)
for j in set(nums2):
   if j not in nums1:
       answer[1].append(j)
print(answer)

.结语

在做这道题时需要特别注意如何将输入的数呈现为所需的列表式;其次,需要站在两个不同的列表角度来判断本列表与对方列表之间存在的不同整数;最后,我们要用set函数来避免最后输出列表中出现重复整数的现象。

稿件来源:深度学习与文旅应用实验室(DLETA) 


作者:代葳

主编:欧洋

以上是关于找出两数组的不同的主要内容,如果未能解决你的问题,请参考以下文章

2-数组中重复的数字

一个数组中只有两个元素只出现一次,其他元素都出现两次,找出其中只出现一次的元素

js数组方法——找出两数组中不相同的元素的集合

SQL语句:对比两张表的数据并筛选出数据不同的

cuda找出大于某个值的所有数据

Excel 如何从A类的身份证号码里找出与B类重复的身份证号