Re: [閒聊] 每日leetcode

作者: 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)
這樣判斷兩次好像有點笨
不知道有沒有辦法寫一起捏

Links booklink

Contact Us: admin [ a t ] ucptt.com