今天无意中看到一个题目,也不是很难,就想着用python实现以下:
题目是数组中的两个数相加等于输入的一个target,然后输出数组的下标。
比如:
[1,2,3,4,5,6] target=7 返回[1,4]
主要是坑就是避免有重复的数字
代码如下
# -*- coding:utf -8 -*- def TwoSum(nums,target): if len(nums) <0: return False for m in nums: n = target-m if n in nums: if m != n: index_n = [i for i,a in enumerate(nums) if a==n][0] index_m = [i for i,a in enumerate(nums) if a==m][0] return [index_m,index_n] if(m == n and len([i for i,a in enumerate(nums) if a==n]) >1): index_m = [i for i,a in enumerate(nums) if a==n][0] index_n = [i for i,a in enumerate(nums) if a==n][1] return [index_m,index_n]