Solution of 3sum
找出三個相加為 0 的數,且解答不得包含重複的組合。
ex:
Input:
nums = [-1,0,1,2,-1,-4]
Output:
[[-1,-1,2],[-1,0,1]]
想法
- 先確認 nums list 中的數是否小於三個,若是小於三個,則直接 return [],若是大於等於三個,則進入以下檢查。
- 使用以下檢查來避免出現重複的組合 for i in range(len(nums)-2): if i > 0 and nums[i-1] == nums[i]: continue。
- 使用 i 與 j 從前往後進行,k 則由後往前進行。
- 若是 nums[i] + nums[j] + nums[k] > 0 ,則將 k 往前一位。
- 若是 nums[i] + nums[j] + nums[k] < 0 ,則將 j 往後一位。