题解 | #两数之和# -- [python3]

两数之和

http://www.nowcoder.com/practice/20ef0972485e41019e39543e8e895b7f

方法1: 两个指针暴力破解

class Solution:
    def twoSum(self , numbers , target ):
        masterIndex = 0
        subIndex = 1
        arrayLen = len(numbers)
        while masterIndex <= arrayLen -2:
            subIndex = masterIndex + 1
            while subIndex <= arrayLen - 1:
                if target == numbers[subIndex] + numbers[masterIndex]:
                    return [masterIndex + 1, subIndex + 1]
                subIndex += 1
            masterIndex += 1

方法2: 字典模仿哈希表

class Solution:
    def twoSum(self , numbers , target ):
        if len(numbers)>1:
            # key 为 数组值,value为数组索引
            hashMap = {}
            for i in range(len(numbers)):
                another = target - numbers[i]
                # 若在哈希表中,返回其值对应的索引
                if another in hashMap:
                    return [hashMap[another]+1, i + 1]
                # 若不在,则加入哈希表中
                else:
                    hashMap[numbers[i]] = i
            return []
        else:
            return []
全部评论

相关推荐

积极的小学生不要香菜:你才沟通多少,没500不要说难
点赞 评论 收藏
分享
程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务