Two Sum

Posted new-start

tags:

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

题目

You are given a list of numbers, and a target number k. Return whether or not there are two numbers in the list that add up to k.

Example:
Given [4, 7, 1 , -3, 2] and k = 5,
return true since 4 + 1 = 5.

Try to do it in a single pass of the list.

分析

使用一个字典储存每一个遍历到的元素。
只需遍历一次列表,对每个元素判断 k 减去它的差是否已经在字典中即可。

时间复杂度 O(n).

代码

def two_sum(list, k):
  d = {}
  for num in list:
    other = k - num
    if other in d:
      return True
    else:
      d[num] = 1

  return False

print two_sum([4,7,1,-3,2], 5)
# True

以上是关于Two Sum的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode #001# Two Sum详解(js描述)

Leetcode - 371. Sum of Two Integers

1 代码片段1

每日一算法之two sum

LeetCode(371) Sum of Two Integers

1_Two Sum --LeetCode