题目:给定一个整数数列,找出其中和为特定值的那两个数。你可以假设每个输入都只会有一种答案,同样的元素不能被重用。
示例:
给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
代码:
class Solution:
def twoSum(self, nums, target):
num_dict = {}
for i in range(len(nums)):
if target - nums[i] in num_dict:
return (num_dict[target - nums[i]],i)
else:
num_dict[nums[i]] = i
return (-1,-1)
心得:虽然这是leetcode第一题,但是自己的代码时间复杂度为O(nlogn),不是最佳解决方法。而以上代码为其他人的代码,看完有所进步☺
此种解法关键是将原数组的值充当字典的健,而将原数组的下标来充当字典的值,类似返回数组下标的问题好多都可以用此方法。
版权声明:本文为博主原创文章,未经允许不得转载。https://blog.csdn.net/cuicheng01/article/details/79821509