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轉化為字典
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容