Leetcode 1.两数之和

Posted 如鹿~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 1.两数之和相关的知识,希望对你有一定的参考价值。

题目描述

  给定整数数组 和目标值,在数组中找到和为目标值的两个整数,并返回他们的下标。,示例:

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

  nums[0] + nums[1] = 2 + 7 = 9
   返回 [0, 1]

解决方法

1.  双重for循环: (运行时间60ms)

class Solution:
    def twoSum(self,nums, target):
        n = len(nums)
        for i in range(n):
            for j in range(i+1,n):
                if nums[i] + nums[j] == target:
                    return i, j

2. 单层for循环

使用index代替内循环得到索引值

class Solution:
    def twoSum(self,nums, target):
        n = len(nums)
        for i in range(n):
      a = target - nums[i]
      if a in nums:
        j = nums.index(a)
        if i != j:
          return i, j

3. 使用dict (运行时间:40ms)

建立dict,存入元素a并查找数组中当前元素是否在字典中

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        n=len(nums)
        d={}
        for i in range(n):
            a= target- nums[i]
            if nums[i] in d:
                return d[nums[i]],i
            else:
                d[a]=i 

以上是关于Leetcode 1.两数之和的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 1两数之和

LeetCode——1.两数之和

LeetCode第5天 - 283. 移动零 | 167. 两数之和 II - 输入有序数组

LeetCode 两数之和 twoSum

LeetCode:两数之和

leetcode_01两数之和