来道算法题,求最优解

var a = [1,3,4,11,32,45,222,98,111,333,231];
var b = [1,3,11,45,98]

求这个两个数组的位置连续部分的交集。
比如上面两个数组返回[1,3]

阅读 2.4k
2 个回答

不好意思没看懂你的问题,连续指的是数值上的连续还是位置上的连续?交集是对哪个生成集合的交集?
是两个数组所有相同元素组成的集合,返回其中的数值连续的部分么?

def intersect(A, B):
    seen = set(A)
    ans = []
    for num in B:
        if num in seen:
            ans.append(num)
    return ans
    

测试:

A = [1,3,4,11,32,45,222,98,111,333,231]
B = [1,3,11,45,98]
intersect(A, B)

想更骚一点的话:

list(set(A) & set(B))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题