首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python3 ()函数无法正常工作

问python3 ()函数无法正常工作
EN

Stack Overflow用户
提问于 2018-05-15 14:04:37
回答 1查看 857关注 0票数 0

我正在尝试解决这个问题:

给定一个数组a,它只包含从1到a.length范围内的数字,找出第一个重复的数字,第二次出现的数字具有最小的索引。换句话说,如果有超过1个重复的数字,则返回第二次出现的数字的索引小于第二次出现的另一个数字的索引的数字。如果没有这样的元素,则返回return -1。

示例

对于a = [2, 1, 3, 5, 3, 2],输出应为firstDuplicate(a) = 3。

有两个重复项:数字2和3。第二次出现3的索引比第二次出现2的索引小,所以答案是3。

对于a = [2, 4, 3, 5, 1],输出应为firstDuplicate(a) = -1。

代码语言:javascript
复制
Input/Output

[execution time limit] 4 seconds (py3)

[input] array.integer a

Guaranteed constraints:
1 ≤ a.length ≤ 105,
1 ≤ a[i] ≤ a.length.

[output] integer

中的元素在数组中出现多次,并且第二次出现的索引最小。如果没有这样的元素,则返回-1。

这是我的代码:

代码语言:javascript
复制
import math

def firstDuplicate(a):
  set1=set() 
  set2=set()
  set1=[a]
  z = len(a)
  y=z/2
  if y%2==0:
          set2 =[a[0:y]]
  else:
          set2 = [a[0:int(y)+1]]
  c = 0   
  c = intersection(a,b)
  if c == 0 :
    return -1
  else:
      if set2[1] > set2[0]:
            return set2[1]
      else:
          return set2[0]
a=[2, 3, 3, 1, 5, 2]  

firstDuplicate(a)  

它给我的错误是找不到这种称为交集的函数。

EN

回答 1

Stack Overflow用户

发布于 2018-05-15 14:11:52

交集运算符'&‘产生集合中的公共元素。

例如:

代码语言:javascript
复制
A = {0, 2, 4, 6, 8};
B = {1, 2, 3, 4, 5};
print("Intersection :", A & B)

输出:交集:{2,4}

要从两个数组中查找交集,请执行以下操作:

代码语言:javascript
复制
a=[2,3,4,5,6]
b=[2,4,6,8,0]
i = [x for x in a if x in b]

数组'i‘的值为2,4,6

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50343282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档