课后作业求助
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: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:47
复杂版本:简单版本:输出:
看不懂。。。 本帖最后由 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])
这个代码的思路就是通过目标数值9减去遍历列表中的每个数值,9-2 = 7,只要找到7就输出到字典中
{:10_256:}其实也可以直接使用暴力法破解,for循环第一个数值,然后继续for循环剩下的数值,知道找出满足条件的,另外可以节省时间把大于目标数的数值排除,例如11 > 9
山西李逵 发表于 2021-10-27 09:57
看不懂。。。
这题是力扣第一题,温馨建议:先不要做力扣,因为你的基础还不稳。
从你的代码:print("[",n,",",m,"]")#这里就已经是错误了,你必须了解数据类型:字符串、整数、浮点数、布林值,你输出的是字符串,不是变量 温馨建议:从基础学起,小甲鱼的课外习题做一遍,你慢慢可以掌握基础的 傻眼貓咪 发表于 2021-10-27 10:12
温馨建议:从基础学起,小甲鱼的课外习题做一遍,你慢慢可以掌握基础的
大神你好可以加个联系方式吗。 山西李逵 发表于 2021-10-27 10:54
大神你好可以加个联系方式吗。
抱歉{:10_254:} for n in range(0,3):
for m in range(1,3)
少了个 e 啊 你的代码错了是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]