hashmap的运用
保持数组中的每个元素与其索引对应:哈希表。(以空间换取速度,使得查找时间由O(n)变为O(1))
- python里的字典{}和java里的hashmap类似
- 通过键来存取,而非偏移量;
- 键值对是无序的;
- 键和值可以是任意对象;
- 长度可变,任意嵌套;
- 字典不能进行有序操作
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
hashmap={}
for index,num in enumerate(nums):
another_num=target-num
if another_num in hashmap:
return [hashmap[another_num],index]
hashmap[num]=index
return None
enumerate()函数:用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
>>> nums=[2,7,11,15]
>>> enumerate(nums)
<enumerate object at 0x1106fa1b0>#直接输入返回一个对象,所以要遍历
>>> for index,num in enumerate(nums):
print(index,num)
0 2
1 7
2 11
3 15