Re: [閒聊] 每日leetcode

看板Marginalman作者 (單推凜寶)時間11月前 (2025/01/14 15:20), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1275/1554 (看更多)
題目: 有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) 這樣判斷兩次好像有點笨 不知道有沒有辦法寫一起捏 -- https://i.imgur.com/aQlk8Lc.jpeg
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.237.36.35 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1736839237.A.92D.html
文章代碼(AID): #1dXX15aj (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1dXX15aj (Marginalman)