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转化为字典
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容