leetcode 001 two sum

解法一

Python的字典dictionary数据结构,{key:value},key和value是一对,in dict一般是key

在循环里嵌套if语句,一边存入前面i的target-nums[i]的值作为key,i作为value,一边判断nums[i]是否已经存在dict里面,存在就意味着nums[i1]+nums[i2]=target。

class Solution:
    def twoSum(self, nums, target):
        if len(nums) <= 1:
            return False
        dict = {}
        for i in range(len(nums)):
            if nums[i] in dict:
                return [dict[nums[i]], i]
            else:
                dict[target - nums[i]] = i

解法二

复制数组,新数组排序,两端夹逼法找target,找到数后,新数组里的数在原数组里找位置,输出位置

class Solution:
    def twoSum(self, nums, target):
        new=nums.copy()
        new.sort()
        rs=[]
        left=0
        right=len(new)-1
        while left<right:
                print (new[left])
                if new[left]+new[right]==target:
                        for i in range(len(nums)):
                                if nums[i]==new[left]:
                                        rs.append(i)
                                        break
                        for i in range(len(nums)-1,-1,-1):#范围内range以-1的间隔倒序,是到尾数-1的前一个数0,所以这里一定是-1而不是0
                                        if nums[i]==new[right]:
                                        rs.append(i)
                                        break
                        break
                elif new[left]+new[right]<target:
                        left=left+1
                else:
                        right=right-1
        rs.sort()
        return rs

解法三

暴力循环,for循环嵌套,结果应该没错,但是超时了

class Solution:
    def twoSum(self, nums, target):
        for i in range(len(nums)):
                for j in range(len(nums)):
                        if (nums[i]+nums[j]==target)and(i!=j):
                                print (i)
                                rs=[i,j]
                                rs.sort()
                                return rs
                                break


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可 6私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值