给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
java实现:
public int[] twoSum(int[] nums, int target) {
for (int i = 0; i < nums.length; i++) {
for (int j = i + 1; j < nums.length; j++) {
if (nums[j] == target - nums[i]) {
return new int[] { i, j };
}
}
}
throw new IllegalArgumentException("No two sum solution");
}
python实现:
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
if not nums:
return None
d = {}
for i, item in enumerate(nums):
#enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
例如:
>>>seq = ['one', 'two', 'three']
>>> for i, element in enumerate(seq):
...print i, element
...
0 one
1 two
2 three
tmp = target - item
for key, value in d.items(): #字典遍历
if value == tmp:
return [key, i]
d[i] = item
return None