第一次解: res = [] nums.sort() if len(nums)<3:return [] for i in range(len(nums)-2): left = i+1 right = len(nums)-1 while left < right: val = nums[i]+nums[left]+nums[right] if val==0 and [nums[i],nums[left],nums[right]] not in res: res.append([nums[i],n…
本文为两个题:[三数和(3Sum)]与[最近三数和(3Sum Closest)]问题 第一部分分析3Sum问题,第二部分分析3Sum Closest问题,由于两个问题的思路很像,所以这里放到一起分析. 其中3Sum问题好像还是计算机科学领域暂未解决的问题之一,当然,还没找到更好的解决方案. 1. 3Sum Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find al…
由于之前对算法题接触不多,因此暂时只做easy和medium难度的题. 看完了<算法(第四版)>后重新开始刷LeetCode了,这次决定按topic来刷题,有一个大致的方向.有些题不止包含在一个topic中,就以我自己做的先后顺序为准了. Array ---11.Container With Most Water 给定许多条与y轴平行的直线,求其中两条直线与x轴围成的容器的最大容量. 这道题用到了双指针的思想.我们在数轴的两端分别放置一个left指针和right指针,因为容器容量=较短边*两边…