码迷,mamicode.com
首页 > 编程语言 > 详细

LeetCode/Python: 1 Two Sum

时间:2018-06-21 01:35:33      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:twosum   IV   bar   __name__   font   on()   return   output   lse   

 

1. Method1

class Solution(object):
    # @return a tuple, (index1, index2)
    def twoSum(self, num, target):
        d = {}
        for i, e in enumerate(num):
            if e in d:
                return d[e] + 1, i + 1
            d[target - e] = i
    s = Solution()
    print (s.twoSum([0, 2, 1,0], 0))
    print (s.twoSum([2,4,6],6))

Result: 

(1, 4)
(1, 2)

2. Method2- TBD

xrange=range

class Solution(object):
    # @return a tuple, (index1, index2)
    def twoSum(self, num, target):
        dict = {}
        for i in xrange(len(num)):
            x = num[i]
            if target-x in dict:
                return (dict[target-x]+1, i+1)
            dict[x] = i

    s = Solution()
    print (s.twoSum([3, 2, 4], 6))

Result: 

(2, 3)

3. Method3 - TBD

class Solution(object):
    
    def twoSum(self, nums, target):
        # two point
        nums_index = [(v, index) for index, v in enumerate(nums)]
        nums_index.sort()
        begin, end = 0, len(nums) - 1
        while begin < end:
            curr = nums_index[begin][0] + nums_index[end][0]
            if curr == target:
                return [nums_index[begin][1], nums_index[end][1]]
            elif curr < target:
                begin += 1
            else:
                end -= 1


if __name__ == __main__:
    # begin
    s = Solution()
    print (s.twoSum([0, 1, 2, 0], 0))

Result: 

[0, 3]

LeetCode/Python: 1 Two Sum

标签:twosum   IV   bar   __name__   font   on()   return   output   lse   

原文地址:https://www.cnblogs.com/lijinghuabj/p/9206612.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!