两数之和01

题目:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

输入:nums = [2, 7, 11, 15], target = 9

输出:[0,1]

思路:利用查找方法,对于nums中的每个元素ele,查找target-ele是否存在

注: 利用双重for循环会超时

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class :
"""
解题思路:对其中的每个元素,查找其差元素是否存在

"""
def twoSum(self, nums, target):
"""
:type s: int
:type nums: List[int]
:rtype: int
"""
for i in range(len(nums)):
sub_tar = target-nums[i]
if nums[i] == sub_tar:
nums[i] = -1
if nums.count(sub_tar) == 1:
return [i, nums.index(sub_tar)]


print(Solution().twoSum([2,7,11,15],18))