今天无意中看到一个题目,也不是很难,就想着用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]