前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >leetcode: 18. 4Sum

leetcode: 18. 4Sum

作者头像
JNingWei
发布2018-09-28 14:12:40
3170
发布2018-09-28 14:12:40
举报
文章被收录于专栏:JNing的专栏JNing的专栏

Problem

代码语言:javascript
复制
# Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = target?
# Find all unique quadruplets in the array which gives the sum of target.
#
# Note: The solution set must not contain duplicate quadruplets.
#
# For example, given array S = [1, 0, -1, 0, -2, 2], and target = 0.
#
# A solution set is:
# [
#   [-1,  0, 0, 1],
#   [-2, -1, 1, 2],
#   [-2,  0, 0, 2]
# ]

AC

代码语言:javascript
复制
# TODO: Cannot ac in python3, but pass in python2


class Solution():
    def fourSum(self, x, target):
        x.sort()
        res = []
        for i in range(len(x) - 3):
            if i == 0 or x[i] != x[i - 1]:
                for j in range(i + 1, len(x) - 2):
                    if j == i + 1 or x[j] != x[j - 1]:
                        mid, right = j + 1, len(x) - 1
                        while mid < right:
                            dis = (x[i] + x[j] + x[mid] + x[right]) - target
                            if dis == 0:
                                res.append([x[i], x[j], x[mid], x[right]])
                                mid, right = mid + 1, right - 1
                                while mid < right and x[mid] == x[mid - 1]:
                                    mid += 1
                                while mid < right and x[right] == x[right + 1]:
                                    right -= 1
                            elif dis < 0:
                                mid += 1
                            else:
                                right -= 1
        return res


if __name__ == '__main__':
    assert Solution().fourSum([1, 0, -1, 0, -2, 2], 0) == [[-2, -1, 1, 2], [-2, 0, 0, 2], [-1, 0, 0, 1]]
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年11月07日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Problem
  • AC
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档