两数之和

简介: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 第一关: 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 .


给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

第一关:

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]


class Solution:

    def twoSum(self, nums, target):

        """

        :type nums: List[int]

        :type target: int

        :rtype: List[int]

        """

        for k,v in enumerate(nums):

            if target - v in nums[k+1:]:

                return [k,nums.index(target - v) ]




第二关:

示例:

[3,3]


class Solution:

    def twoSum(self, nums, target):

        """

        :type nums: List[int]

        :type target: int

        :rtype: List[int]

        """

        for k,v in enumerate(nums):

            if target - v in nums[k+1:]:

                return [k,nums[k+1:].index(target - v) + k + 1]



第三关:

多个组合1440 ms

示例:

nums = [1,2,3,4,5,6,7,8,9]

target = 10


class Solution:

    def twoSum(self, nums, target):

        """

        :type nums: List[int]

        :type target: int

        :rtype: List[int]

        """

        lst = []

        for k,v in enumerate(nums):

            if target - v in nums[k+1:]:

                lst.append([k,nums[k+1:].index(target - v) + k + 1])  

        if len(lst) == 1:

            lst = lst[0]

        return lst



运行最快代码52ms

class Solution:

    def twoSum(self, nums, target):

        dic = {}

        lst = []

        for i in range(len(nums)):

            if target-nums[i] in dic:

                lst.append([dic[target-nums[i]], i])

            dic[nums[i]]=i

        if len(lst) == 1:

            lst = lst[0]

        return lst





目录
相关文章
|
2月前
|
存储 算法 Go
LeetCode第二题: 两数相加
 给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
LeetCode第二题: 两数相加
|
3月前
leetcode-29:两数相除
leetcode-29:两数相除
17 0
|
3月前
|
存储
leetcode-2:两数相加
leetcode-2:两数相加
22 0
|
7月前
1. 两数之和
1. 两数之和
32 0
|
7月前
|
存储 算法
LeetCode2-两数相加
LeetCode2-两数相加
|
10月前
|
存储 算法 安全
LeetCode - #29 两数相除
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
|
10月前
|
存储 算法 测试技术
leetcode:29.两数相除
给定两个整数,被除数 dividend和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。
58 0
|
10月前
|
存储 Java Python
leetcode:2.两数相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
36 0