Leetcode-01.两数之和
题目
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
大佬的思路
- 用字典模拟哈希求解(简单明了)
用字典记录num1和num2值和位置
def twoSum(nums, target):
hashmap={}
for ind,num in enumerate(nums): #索引nums的key和value
hashmap[num] = ind
for i,num in enumerate(nums):
j = hashmap.get(target - num)
if j is not None and i!=j: #差值存在并且不能是它本身
return [i,j]
- 补充
enumerate() :在字典中是枚举,列举的意思;对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值;enumerate多用于在for循环中得到计数
其他
“题目” 标签来自leetcode,侵权请联系我进行删改
代码出处:https://leetcode-cn.com/problems/two-sum/solution/xiao-bai-pythonji-chong-jie-fa-by-lao-la-rou-yue-j/