首页 > 其他 > 详细

LeetCode.001.Two Sum

时间:2017-02-09 23:13:03      阅读:224      评论:0      收藏:0      [点我收藏+]

技术分享

地址:https://leetcode.com/problems/two-sum/

题意:

给定一个数组和一个target, 如果数组中有两个数的和恰好等于target, 返回它们的下标. 

题解:

思路有很多, 随便搞一搞就可以

比如: 先排序, 然后遍历每一个数, 二分查找另一个

因为python自带字典树(dist), 所以这里给出更方便的这种做法:
  先按照 d = { 值 : 下标 } 建树, 然后遍历每一个数, 直接查找另一个, 返回这两个数的下标即可

代码:

 1 class Solution(object):
 2     def twoSum(self, nums, target):
 3         """
 4         :type nums: List[int]
 5         :type target: int
 6         :rtype: List[int]
 7         """
 8         lena = len(nums)
 9         d = { 0x3fffffff: 0x3fffffff }
10         for i in range(lena):
11             d[nums[i]] = i
12 
13         for i in range(lena):
14             temp = target - nums[i]
15             if temp in d:
16                 if d[temp] != i:
17                     return [i, d[temp]]

 

LeetCode.001.Two Sum

原文:http://www.cnblogs.com/hexsix/p/6384135.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!