LeetCode 18 [4Sum]

原题

给一个包含n个数的整数数组S,在S中找到所有使得和为给定整数target的四元组(a, b, c, d)。

例如,对于给定的整数数组S=[1, 0, -1, 0, -2, 2]target=0. 满足要求的四元组集合为:
(-1, 0, 0, 1)
(-2, -1, 1, 2)
(-2, 0, 0, 2)

四元组(a, b, c, d)中,需要满足a <= b <= c <= d
答案中不可以包含重复的四元组

解题思路

  • 从2Sum, 3Sum一路演变而来,可以转化为连个for循环+2Sum解决

完整代码

class Solution(object):
    def fourSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[List[int]]
        """
        res = []
        nums.sort()
        for i in range(len(nums)):
            if i != 0 and nums[i] == nums[i - 1]:
                continue
            
            for j in range(i + 1, len(nums)):
                if j != i + 1 and nums[j] == nums[j - 1]:
                    continue
                
                left, right = j + 1, len(nums) - 1
                while left < right:
                    sum = nums[i] + nums[j] + nums[left] + nums[right]
                    if sum < target:
                        left += 1
                    elif sum > target:
                        right -= 1
                    else:
                        res.append([nums[i], nums[j], nums[left], nums[right]])
                        left += 1
                        right -= 1
                        while left < right and nums[left] == nums[left - 1]:
                            left += 1
                        while left < right and nums[right] == nums[right + 1]:
                            right -= 1
        return res
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【1】7,9,-1,5,( ) A、4;B、2;C、-1;D、-3 分析:选D,7+9=16;9+(-1)=8;(...
    Alex_bingo阅读 19,948评论 1 19
  • 1. 关于诊断X线机准直器的作用,错误的是()。 (6.0 分) A. 显示照射野 B. 显示中心线 C. 屏蔽多...
    我们村我最帅阅读 11,583评论 0 5
  • “上有天堂,下有苏杭”,生长在西北的我内心却向往着如烟似雾的江南,于是一毕业就去了最江南的苏州求职,独在异乡的孤单...
    清池0615阅读 573评论 0 2
  • 今天画了一张麋鹿,还算比较简单。 虽然黑暗中看不到你的眼睛,但我可以去肆意的遐想,我想你定是在双目盯着我,流露出你...
    idea伟阅读 687评论 1 9
  • 此夜无风,焰火很高,每一张笑靥如花的脸都飞起一抹绯红,星眸流转间有我我最爱的模样。亲爱的人呐,愿你慢慢的走,我好想...
    不做庸人丶不自扰阅读 207评论 0 0

友情链接更多精彩内容