
2020.5.17-力扣刷刷2-1.两数之和
发布日期:2021-05-07 08:51:56
浏览次数:19
分类:精选文章
本文共 1312 字,大约阅读时间需要 4 分钟。
遍历数组A[i],如果(目标值-A[i])在数组中且两者的所在位置即索引不相等,则返回它们的位置。
def twosum(A,x): for i in range(len(A)): right=A[i] n=x-right if n in A and A.index(n)!=right:#A.index(n)数组中nd的索引 return [i,A.index(n) ] else: return []
题解二:哈希映射hashmap
-
利用哈希表的查找元素时间复杂度为O(1)的优点,可对此题建立哈希映射
-
用hashMap将数组的下标和值反向一一对应。遍历数组,对于数组中的每一个值,用hashmap找出唯一对应的值即数组中元素索引。
例如示例中target = 9,num[0] = 2,那么就在hashmap中查找key = 9-2 = 7的value, 即1。
def twoSum(nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ hash_map ={ }#以字典的形式建立空哈希表,哈希表的键key是数组元素,值value是索引 for i,x in enumerate(nums): if target - x in hash_map: return [i,hash_map[target-x]] hash_map[x] = i#这句不能放在if语句之前,解决list中有重复值或target-x=x的情况
enumerate()函数的描述:
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
使用语法:
enumerate(sequence,[start=0])
参数:
- sequence 一个序列、迭代器或其他支持迭代的对象 (string、list 和 tuple 都属于 sequence(序列))
- start 下标数据下标起始位置。默认为0 例子: start默认
A=[12,14,16,18]em=enumerate(A)a=[i for i in em]print(a)
输出结果:
[(0, 12), (1, 14), (2, 16), (3, 18)]
start=100
A=[12,14,16,18]em=enumerate(A,start=100)b=[i for i in em]print(b)
输出结果:
[(100, 12), (101, 14), (102, 16), (103, 18)]发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月14日 10时57分52秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2021-04-05阅读小笔记:局部性原理
2021-05-08
go语言简单介绍,增强了解
2021-05-08
python file文件操作--内置对象open
2021-05-08
架构师入门:搭建基本的Eureka架构(从项目里抽取)
2021-05-08
MongoDB 快速扫盲贴
2021-05-08
修复搜狗、360等浏览器不识别SameSite=None 引起的单点登录故障
2021-05-08
EXTJS4.2——10.Tab+Iframe
2021-05-08
WEB基础——AJAX
2021-05-08
one + two = 3
2021-05-08
sctf_2019_easy_heap
2021-05-09
PyQt5之音乐播放器
2021-05-09
Redis进阶实践之十八 使用管道模式提高Redis查询的速度
2021-05-09
SQL注入
2021-05-09
#2036:改革春风吹满地
2021-05-09
MPI Maelstrom POJ - 1502 ⭐⭐ 【Dijkstra裸题】
2021-05-09
P1379 八数码难题 ( A* 算法 与 IDA_star 算法)
2021-05-09
算法学习笔记: 珂朵莉树
2021-05-09
Codeforces Round #664 题解(A ~ C)
2021-05-09