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

  

posted on 2017-01-18 18:26  无尽的缥缈  阅读(579)  评论(0编辑  收藏  举报