class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i] + nums[j] == target:
return [i, j]
# leetcode 最优解
class Solution2(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
解题思路:[2, 15, 11, 7] dict里面存的是需求,当前元素需要哪个值相加,后面的先检查我是不是被需要了
2不在dict里, 第一个元素需要7, 记录一下当前元素位置0 {7: 0}
15不在dict里, 第二个元素需要-6, 记录一下当前元素位置0 {-6: 1}
11不在dict里, 第三个元素需要-2, 记录一下当前元素位置0 {-2: 2}
7在dict里,说明有人需要它,是这个key的value(0)位置的值需要它
"""
my_dict = {}
for i, v in enumerate(nums):
if v in my_dict:
return [my_dict[v], i]
my_dict[target - v] = i
nums = [2, 15, 11, 7]
target = 9
s = Solution2()
print(s.twoSum(nums, target))
数组_09_两数之和
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1...
- 题目描述 整数数组中找出一组和为目标值的两个整数(不能重复利用这个数组中同样的元素),并返回他们的数组下标。 示例...
- import java.util.*; /** 给定一个整数数组 nums 和一个目标值 target,请你在该数...
- 一个 int 数组(size > 2)中,其中两个数之和等于规定的一个数,找出这两个数在数组中的下标。假设数组元素...
- 题目 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回...