给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] https://leetcode-cn.com/problems/two-sum/submissions/
1
2
3
4
5
6
7
|
给定
nums
=
[
2
,
7
,
11
,
15
]
,
target
=
9
因为
nums
[
0
]
+
nums
[
1
]
=
2
+
7
=
9
所以返回
[
0
,
1
]
https
:
/
/
leetcode
-
cn
.
com
/
problems
/
two
-
sum
/
submissions
/
|
class Solution(object): def twoSum(self, nums, target): if len(nums) <= 1: return -1 # 1. 首先判断nums个数 如果小于等于1 返回 -1 dic = {} # 2. 创建个临时的dict, 用于存储临时变量 for i, num in enumerate(nums): # 3. enumerate 函数的使用,遍历索引和值 if num in dic: return [dic[num], i] # 如果在 就返回两个数索引 else: # 4.如果不在字典中 则把(target - num)作为key存储,num的索引作为值 dic[target - num] = i
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
class
Solution
(
object
)
:
def
twoSum
(
self
,
nums
,
target
)
:
if
len
(
nums
)
<=
1
:
return
-
1
# 1. 首先判断nums个数 如果小于等于1 返回 -1
dic
=
{
}
# 2. 创建个临时的dict, 用于存储临时变量
for
i
,
num
in
enumerate
(
nums
)
:
# 3. enumerate 函数的使用,遍历索引和值
if
num
in
dic
:
return
[
dic
[
num
]
,
i
]
# 如果在 就返回两个数索引
else
:
# 4.如果不在字典中 则把(target - num)作为key存储,num的索引作为值
dic
[
target
-
num
]
=
i
|