码迷,mamicode.com
首页 > 其他好文 > 详细

018 4Sum

时间:2015-08-10 13:20:29      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:

018 4Sum

感觉最差的情况应该是O(n*n*n)的复杂度

from collections import defaultdict
class Solution:
    # @param {integer[]} nums
    # @param {integer} target
    # @return {integer[][]}
    def fourSum(self, nums, target):
        dic = defaultdict(list)
        d = {}
        nums.sort()
        ans = []
        #minCom = nums[0] + nums[1]
        for i in xrange(0, len(nums)):
            for j in xrange(i + 1, len(nums)):
                s = nums[i] + nums[j]
                dic[s].append([nums[i], nums[j], i, j])
        for v in dic:
            if v > target/2:
                continue
            if target - v in dic:
                for x in dic[v]:
                    for  y in dic[target - v]:
                        if x[3] < y[2]:
                            tmp = [x[0],x[1],y[0],y[1]]
                            t = (x[0],x[1],y[0],y[1])
                            if t not in d:
                                ans.append(tmp)
                                d[t] = 0
        return ans

 

018 4Sum

标签:

原文地址:http://www.cnblogs.com/dapanshe/p/4717685.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!