【出错未完成】leetcode 第十五题 三数之和 python

好像有点问题,不太对
class Solution:
    def threeSum(self, nums):
        dir={}
        r=[]
        r2=[]
        for k in range(0,len(nums)):
            dir[k]=nums[k]
        new_dir = {v : k for k, v in dir.items()}
       
        for i in range(0,len(nums)):
            for j in range (i+1,len(nums)):
                complement= 0-nums[i]-nums[j]
                if complement in dir.values():
                    if (new_dir[complement]>j ):
                        a=[nums[i],nums[j],complement]
                        a.sort()
                        r.append(a)
                       # r = sorted(set(r),key = r.index)
        for l in r:
            if not l in r2:
                r2.append(l)
                      
        return r2

用的是笨办法,可以看成是暴力搜索
几个要点:

1. key值是不可重复的
new_dir = {v : k for k, v in dir.items()}可以把key 和value倒过来, 这样可以从value索引到key
2.  a.sort()可以把list里的值排序
    如果遇上unhashable的,比如说list里面有list

    for l in r:
           if not l in r2:
           r2.append(l)
这样写测试的时候没问题但是提交的时候时间超过限制,可能是我写的复杂度太高了,等以后水平上来了再来修改。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值