Python基础习题
给出一个整数数组,请在数组中找出两个加起来等于目标函数的数。
给出函数twoSum需要返回这两个数字的下标(index1,index2),需要满足index1小于index2.
注意:下标从1开始,并且假设给出的数组中只存在唯一解
例如:
给出的数组为[20,70,110,150],目标值为90
输出index1=1,index2=2
解题思路:
1,先内部给定一组数组及需要求和的目标值,根据题目,我们可以循环相加,方法为从第一个数开始循环,每个数分别加这个数后面的所有的数
其中最后一个数后面没有数,第一个数不需要与本身相加
利用for循环,进行如下操作,检查i 及各个相加结果:
num_list = [20,70,110,150]
num_target = 90
for i in num_list[:-1]:
result = [i+j for j in num_list[i+1:]]
print(i)
print(result)
运行结果:
20
[]
70
[]
110
[]
2,i值没有问题,输出结果为空,分析原因为j 不能用i+1循环,而应该用i的索引值+1循环,
由于for循环推导式只能输出列表,因此改为for循环嵌套
修改后如下:
num_list = [20,70,11