楼主:
Meaverzt (Meaverzt)
2025-01-14 15:20:35题目:
有A B 两个阵列每一项都是1到len(A)其中一个数不会重复
要回传一个阵列每一项都是A B阵列这一项之前总共出现过几个相同的数字
像是A=[1,3,2,4] B=[3,1,2,4]
第0项A[0]=1 B[0]=3不相同所以C[0]是0
第1项跑完A B都出现过1跟3所以C[1]=2
以此类推就知道C=[0,2,3,4]
思路:
轮流遍历A B的每一项(每一项都先去看A[i]再看B[i])
如果没有出现过就把他放进一个set里面
有出现过代表有一个相同数字答案就加1
这样A B跑完就是答案了
Code:
def findThePrefixCommonArray(A,B):
s=set()
ans=[]
num=0
for i in range(len(A)):
if A[i] in s:
num+=1
else:
s.add(A[i])
if B[i] in s:
num+=1
else:
s.add(B[i])
ans.append(num)
return ans
时间复杂度:O(n)
这样判断两次好像有点笨
不知道有没有办法写一起捏