找出两数组的不同
  TEZNKK3IfmPf 2023年11月15日 28 0

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],[]]


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函数来避免最后输出列表中出现重复整数的现象。

作者:代葳

主编:欧洋


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月15日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   39   0   0 python开发语言
  TEZNKK3IfmPf   2024年05月31日   28   0   0 python
  TEZNKK3IfmPf   2024年05月31日   31   0   0 python
TEZNKK3IfmPf