twoSum__Python3

Given an array of integers, return indicesof the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the same element twice.

一个整数数组中两个元素可以相加得到给定的数值,每次输入只得到1组输出,不能重复使用数组中的数。

例:
Given nums = [2, 7, 11, 15]
target = 9
Because nums[0] + nums[1] = 2 + 7 = 9
return [0,1]
type nums: List[int]
type target: int
rtype: List[int]

BF: 时间复杂度 O(n^2)


class Solution:
  def twoSum(self, nums, target):
  #嵌套循环遍历列表,元素相加是否符合target值
    length = len(nums)
    for index in range(length) :
      for n in range(index+1,length):
        if(nums[index] + nums[n] == target):
    return (index,n)

哈希表:时间复杂度O(n)

class Solution:
  def twoSum(self, nums, target):
    dict = {}   #字典是哈希表在python中的实现
    for index in range(len(nums)):
      left = target - nums[index]  #向字典中检查是否有left的值
      if left in dict:    #一边检索一边向空字典中添加元素,字典中顺序与nums中一致
        return (dict[left], index)
      else:
        dict[nums[index]] = index  #添加元素,nums转化为字典

你可能感兴趣的:(twoSum__Python3)