Re: [閒聊] 每日leetcode

看板Marginalman作者 (みけねこ的鼻屎)時間1年前 (2024/03/25 09:22), 編輯推噓4(403)
留言7則, 4人參與, 1年前最新討論串69/1548 (看更多)
https://leetcode.com/problems/find-all-duplicates-in-an-array 442. Find All Duplicates in an Array 給你一個大小為 n 的陣列,裡面只包含1~n,每個元素只會出現一次或兩次,求出哪些 數字出現超過一次。 你必須使用常數空間和線性時間複雜度。 思路: 1.把整個陣列當成一個 map,因為數字只在1~n的關係不需額外空間,每次都把 nums[i] - 1 位置的索引標記成負數(乘上-1),如果某次走訪時發現已經是負的 就表示當前值重複出現了。 pycode: -------------------------------------------------------------------- class Solution: def findDuplicates(self, nums: List[int]) -> List[int]: res = [] for i in range(len(nums)): idx = abs(nums[i]) - 1 if nums[idx] < 0: res.append(abs(nums[i])) else: nums[idx] *= -1 return res -------------------------------------------------------------------- -- https://i.imgur.com/AhrL1pB.jpg
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.138.175.27 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1711329758.A.F2B.html

03/25 09:23, 1年前 , 1F
這題我還有看到用快慢指針的 超詭異的題目= =
03/25 09:23, 1F

03/25 09:24, 1年前 , 2F
大師
03/25 09:24, 2F

03/25 09:24, 1年前 , 3F
大師
03/25 09:24, 3F

03/25 09:25, 1年前 , 4F
快慢指針不是這題吧
03/25 09:25, 4F

03/25 09:25, 1年前 , 5F
這題可能有一個以上環
03/25 09:25, 5F

03/25 09:26, 1年前 , 6F
快慢指標是昨天的,那題很多解法
03/25 09:26, 6F

03/25 09:26, 1年前 , 7F
我搞錯了 好像是昨天還前天 就是只找一個重複的那題?
03/25 09:26, 7F
文章代碼(AID): #1c0D7Uyh (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1c0D7Uyh (Marginalman)