Re: [閒聊] 每日leetcode 169
老題目
之前我自己寫好像是用set來去重複
這次試著寫了一堆臭臭
好像也沒比較快
==
def threeSum(self, nums: List[int]) -> List[List[int]]:
n = len(nums)
ans = []
nums.sort()
prev_numi = None
for i in range(n-2):
if nums[i]==prev_numi:
continue
l, r = i+1, n-1
res = -nums[i]
while l<r:
if nums[l]+nums[r] == res:
if len(ans)==0 or [nums[i],nums[l],nums[r]] != ans[-1]:
ans.append([nums[i],nums[l],nums[r]])
l+=1
r-=1
elif nums[l]+nums[r] < res:
l+=1
else:
r-=1
prev_numi = nums[i]
return ans
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.58.28 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1752594531.A.F78.html
推
07/15 23:54,
6月前
, 1F
07/15 23:54, 1F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 4 篇):