首页 > 其他 > 详细

[LeetCode] 1. Two Sum 两数之和

时间:2019-05-25 17:11:09      阅读:134      评论:0      收藏:0      [点我收藏+]

2019年5月25日   开始了我的刷题之路,此笔记记录刷题流程

[LeetCode] 1. Two Sum 两数之和

 
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:

Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,

return [0, 1]
 
 
思路:遍历一次,遍历过程中建立字典,和减法,除法都有对称性,如果在列表中找到了目标1,根据 sum = a + b  那么后面必然还会找到一个目标2 , 
 
Python 代码:
 1 class Solution:
 2     def twoSum(self, nums: List[int], target: int) -> List[int]:
 3         if nums == []:
 4             return None
 5         seen = {}
 6         
 7         for index,value in enumerate(nums):
 8             x = target - value
 9             if x in seen:
10                 return [seen[x],index]
11             else:
12                 seen[value] = index
13 
14 
15 #EG: target = 7 
16 #      list = [1,2,3,4,5,]
17 
18 #如果a能成功,b不在字典里,但是列表里的确有b ,不要慌,这时把a放到字典里,减法有对称性,扫描到b的时候必然能成功找到 a 在字典里,返回两个下标

 

 

[LeetCode] 1. Two Sum 两数之和

原文:https://www.cnblogs.com/Poceer/p/10922779.html

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