两数之和(Python)

在学习Python的道路上,翻找各种博客论坛,在查找中找到了一个叫力扣的刷题网站,然后开始做第一道题

页面上显示为简单,

为嘛我做了十几个小时才弄出来,为自己的智商,穆埃几分钟。先把我辛辛苦苦十几个小时(因为中间不想写了)的劳动成果贴上

class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        for index,item in enumerate(nums):
            print(index)
            j = index+1
            for i in range(j,len(nums)):
                print(i)
                if item + nums[i]==target:                  
                    return index,i
    def twoSum2(self,nums,target):
        dict_1={}
        li_2=[]
        dict_3={}
        isMoreZero = 0
        for index,item in enumerate(nums):
            if item<=0 :
                dict_1[index] = item
            if item>=0:
                isMoreZero+=1
            if len(dict_1)!=len(nums) and item>target:
                dict_3[index] = item
        if len(dict_1)==len(nums) or isMoreZero==len(nums):
            for index,item in enumerate(nums):
                if item<=target or len(dict_1)==len(nums):
                    k = index+1
                    for j in range(k,len(nums)):
                        if item + nums[j]==target:                  
                            li_2.append(index)
                            li_2.append(j)
        else:
            for key1,value1 in dict_1.items():
                for key2 ,value2 in dict_3.items():
                    if value1+value2 ==target and (value1 not in li_2) and (value2 not in li_2):
                        li_2.append(key2)  
                        li_2.append(key1)                      
        return li_2
 
我在这里写了两个,一个twoSum方法,一个twoSum2方法,第一个方法显示结果是超出限制,我看了下测试用例,参数nums 中又12599个数,,,然后性能就差,后来就看着各种bug改呀,写了twoSum2()最后也仅仅是通过,性能还是弱点。慢慢学吧,先给自己打个气吧

反思总结: 想要在软件行业混好,不学算法,不懂算法是万万不行的滴滴滴滴滴

原文地址:https://www.cnblogs.com/fool-jingqiu/p/11163453.html