如何用PYTHON解决两数之和问题

 时间:2026-02-12 02:26:39

1、打开JUPYTER NOTEBOOK,新建一个PY文档。

如何用PYTHON解决两数之和问题

2、l = [1, 5, 33, 6, 18]

goal = 7

这是列表和目标数,要求找到两个数相加得到目标数。

如何用PYTHON解决两数之和问题

3、l[0] + l[-2]

这是最简单的方法,但是数据多的时候,或者目标数比较大的时候就比较难计算了。

如何用PYTHON解决两数之和问题

4、for i in l:

    if goal - i == ?

    print(i, ?)

这里我们可以考虑用FOR循环找出两个数。

如何用PYTHON解决两数之和问题

5、for i in range(len(l)):

    if goal - l[i] == ?

    print(i, ?)

遍历的时候要指定范围,所以就要用len。

如何用PYTHON解决两数之和问题

6、for i in range(len(l)):

    for j in range(len(l)):

        if goal - l[i] == l[j]

            print(i, j)

但是只有一个i是不够的,还要用j来记录。

如何用PYTHON解决两数之和问题

7、for i in range(len(l)):

    for j in range(1, len(l)):

        if goal - l[i] == l[j]:

            print(i, j)

j只需要在1开始,没必要都从0开始。

如何用PYTHON解决两数之和问题

8、l = [1, 5, 33, 5, 18]

goal = 10

for i in range(len(l)):

    for j in range(1, len(l)):

        if goal - l[i] == l[j]:

            print(i, j)

如果列表里面有重复的数,这个方法就有点问题了。

如何用PYTHON解决两数之和问题

9、l = [1, 5, 33, 5, 18]

goal = 10

d = {}

for i in range(len(l)):

    if (goal - l[i]) in d:

        print(i, d[(goal - l[i])])

因为我们打算用字典来储存数据。

如何用PYTHON解决两数之和问题

10、l = [1, 5, 33, 5, 18]

goal = 10

d = {}

for i in range(len(l)):

    if (goal - l[i]) in d:

        print(i, d[(goal - l[i])])

    else:

        d[l[i]] = i

但是这里打印的数顺序相反了。

如何用PYTHON解决两数之和问题

11、l = [1, 5, 33, 5, 18]

goal = 10

d = {}

for i in range(len(l)):

    if (goal - l[i]) in d:

        print(d[(goal - l[i])], i)

    else:

        d[l[i]] = i

所以这才是正确的方法。

如何用PYTHON解决两数之和问题

  • 980打3.5折怎么算简单
  • 如何用手机号码当qq号
  • 余额宝开通了如何关闭?
  • 如何解除qq中已绑定的身份证号及信息?
  • 你最喜欢的外国导演是谁
  • 热门搜索
    成语翻译大全 舞曲大全 林彪简介 ps笔刷怎么用 怎么换照片底色 晋祠简介 暗语大全 羊肉串怎么烤 土豆块的做法大全 儿童脑筋急转弯大全