[Leetcode] Python3 實現三數之和
阿新 • • 發佈:2018-12-17
給定一個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重複的三元組。
注意:答案中不可以包含重複的三元組。
例如, 給定陣列 nums = [-1, 0, 1, 2, -1, -4],滿足要求的三元組集合為: [ [-1, 0, 1], [-1, -1, 2] ]
class Solution:
def threeSum(self, nums): res_list = [] if (type(nums) == list): findNums= [[]]; nums.sort() k = len(nums) for i, v in enumerate(nums): j = i + 1 while j < k: m = j + 1 while m < k: if nums[i]+ nums[j]== -nums[m]: result = [nums[i], nums[j], nums[m]] result.sort() if result not in res_list: res_list.append(result) m = m+ 1 else: m = m+ 1 j = j+1 return res_list sss= Solution() nums = [-1,-12,14,-6,4,-11,2,-7,13,-15,-1,11,-15,-15,13,-9,-11,-10,-7,-13,7,9,-13,-3,10,1,-5,12,11,-9,2,-4,-6,-7,5,5,-2,14,13,-12,14,-3,14,14,-11,5,12,-6,10,-9,-4,-6,-15,-9,-1,2,-1,9,-9,-5,-15,8,-2,-6,9,10,7,14,9,5,-13,9,-12,8,8,-8,-2,-2,1,-15,-4,5,-13,-4,3,1,5,-13,-13,11,-11,10,5,3,11,-9,-2,3,-10,-7,-6,14,9,-11,7,2,-4,13,7,5,13,-12,-13,7,-9,5,-7,11,-1,-12,8,3,13,-10,13,1,-4] list = sss.threeSum(nums) print(list)
上面演算法在本地驗證正確,但在提交服務端提醒超時,不知道是網路問題,還算效率