Problem
Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1]
Solution
class Solution:
def two_Sum(self,nums,target):
for i in nums:
j = target - i
start_index = nums.index(i)
next_index = start_index + 1
temp_nums = nums[next_index:]
if j in temp_nums:
return (nums.index(i),next_index+temp_nums.index(j))
这个方案虽然可以解决该问题,但是其运行时间却需要很长的时间,所以对算法进行改进,所以提出如下解决方案:
class solution:
def Two_Sum(self,nums,target):
dict = {}
for i in range(len(nums)):
if target-nums[i] not in dict:
dict[nums[i]] = i;
else:
return [dict[target-nums[i]],i]