元の問題文:3つの合計アルゴリズム解
n個の整数の配列Sが与えられた場合、a + b + c = 0となるようにSに要素a、b、cがあるか?配列のすべてのユニークなトリプレットを見つけて、ゼロの合計を求めます。
注:ソリューションセットには、重複するトリプレットが含まれていてはなりません。
For example, given array S = [-1, 0, 1, 2, -1, -4],
A solution set is: [[-1, 0, 1], [-1, -1, 2]]
こんにちは私はしばらくの間バックLeetCode上の2つの和の問題を解決し、私も3点の合計を解決するためにそれを使用するのではと思いました。私の考えは、すべての要素のための* -1ただし0を取得するための要素を合計まで残り、リスト内の2つの要素を見つけることです、このコードは例
Input: [-4,-2,-2,-2,0,1,2,2,2,3,3,4,4,6,6]
Output: [[-4,-2,6],[-4,0,4],[-4,1,3],[-4,2,2]]
Expected: [[-4,-2,6],[-4,0,4],[-4,1,3],[-4,2,2],[-2,-2,4],[-2,0,2]]
のために、すべてのテストに合格していない私は「ドン何が間違っているのか本当に知りません。誰かが私に問題を説明するのに十分な親切な人になれますか? あなた
class Solution(object):
def threeSum(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
def twoSum(self, nums, target):
targ = target
for index, i in enumerate(nums):
targ -= i
if targ in nums[index+1:]:
return [nums[index], nums[nums[index+1:].index(targ)+index+1]]
else:
targ = target
return None
res = []
for index, i in enumerate(nums):
target = i * -1
num = nums[:index] + nums [index+1:]
ans = twoSum(self, num, target)
if ans != None:
temp = ans + [i]
temp.sort()
res.append(temp)
print(res)
import itertools
res.sort()
res = list(res for res,_ in itertools.groupby(res))
return res
オリジナル質問ありがとう:itertools
を使用してhttps://leetcode.com/problems/two-sum/description/
問題の説明を別のサイトへのリンクではなく、問題の説明に含めてください。そのサイトがダウンしたり、URLパターンが変更された場合、あなたの質問は今後理解されません。 – Phrogz
@Phrogz入力していただきありがとうございます。入力のおかげで – someRandomGuy
私は、同じ要素で2回発生する可能性がある任意の組み合わせに対して、反復がミスアウトすることが問題であると判断しました。私はその周りに道を見いだし、答えをここに掲示しようとします。 – someRandomGuy