山西李逵 发表于 2021-10-27 09:28:06

课后作业求助

0. 给定一个整数列表 nums 和一个目标值 target,请在该数组中找出和为目标值的两个元素,并将它们的数组下标值打印出来。
比如给定的列表 nums = ,目标值 target = 9,那么由于 nums + nums = 2 + 7 = 9,所以打印结果是:

这是我写的 不能运行,求助。
nums =
target = 9
for n in rang(0,3):
    for m in rang(1,3):
      if nums + nums == target:
            print("[",n,",",m,"]")

傻眼貓咪 发表于 2021-10-27 09:47:11

本帖最后由 傻眼貓咪 于 2021-10-27 09:56 编辑

{:10_254:}复杂版本:nums =
target = 9

def solution(nums: list, target: int) -> list:
    if not (target%2):
      if nums.count(int(target/2)) > 1:
            return .index(int(target/2))+nums.index(int(target/2))+1]
    return [ for i in nums for j in nums if (i != j) and (i+j == target)]

print(solution(nums, target))简单版本:nums =
target = 9

def solution(nums: list, target: int) -> list:
    for n, i in enumerate(nums):
      for m, j in enumerate(nums, start = n+1):
            if i+j == target:
                return

print(solution(nums, target))输出:

山西李逵 发表于 2021-10-27 09:57:57

傻眼貓咪 发表于 2021-10-27 09:47
复杂版本:简单版本:输出:

看不懂。。。

fish_nian 发表于 2021-10-27 10:02:15

本帖最后由 fish_nian 于 2021-10-27 10:10 编辑


def twoSum(nums, target):
    count = dict()
    for a, b in enumerate(nums):
      if target - b not in count:
            count = a
      else:
            print(, a])

fish_nian 发表于 2021-10-27 10:05:06

这个代码的思路就是通过目标数值9减去遍历列表中的每个数值,9-2 = 7,只要找到7就输出到字典中

fish_nian 发表于 2021-10-27 10:07:07

{:10_256:}其实也可以直接使用暴力法破解,for循环第一个数值,然后继续for循环剩下的数值,知道找出满足条件的,另外可以节省时间把大于目标数的数值排除,例如11 > 9

傻眼貓咪 发表于 2021-10-27 10:10:41

山西李逵 发表于 2021-10-27 09:57
看不懂。。。

这题是力扣第一题,温馨建议:先不要做力扣,因为你的基础还不稳。

从你的代码:print("[",n,",",m,"]")#这里就已经是错误了,你必须了解数据类型:字符串、整数、浮点数、布林值,你输出的是字符串,不是变量

傻眼貓咪 发表于 2021-10-27 10:12:21

温馨建议:从基础学起,小甲鱼的课外习题做一遍,你慢慢可以掌握基础的

山西李逵 发表于 2021-10-27 10:54:37

傻眼貓咪 发表于 2021-10-27 10:12
温馨建议:从基础学起,小甲鱼的课外习题做一遍,你慢慢可以掌握基础的

大神你好可以加个联系方式吗。

傻眼貓咪 发表于 2021-10-27 11:40:10

山西李逵 发表于 2021-10-27 10:54
大神你好可以加个联系方式吗。

抱歉{:10_254:}

我不想秃头LH 发表于 2021-10-27 14:36:59

for n in range(0,3):
    for m in range(1,3)

少了个 e 啊

18199673236 发表于 2021-10-27 14:59:19

你的代码错了是range不是rang。nums =
target = 9
for n in range(0,3):
    for m in range(1,3):
      if nums + nums == target:
            print("[",n,",",m,"]")
页: [1]
查看完整版本: 课后作业求助