1. Two Sum
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].
第一种解法:暴力解法,用两个循环
class Solution:
def twoSum(self, nums, target) :
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
indexlist=[]
valuelist=[]
for i in range(len(nums)):
for j in range(i+1,len(nums)):
if(nums[i] + nums[j] == target):
if nums[i] not in valuelist:
indexlist.append(i)
if nums[j] not in valuelist:
indexlist.append(j)
valuelist.append(nums[i])
valuelist.append(nums[j])
return indexlist
第二种解法:
用字典实现,将序列中的元素作为key,将下标作为value。
class Solution:
def twoSum(self, nums, target) :
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
dict={}
for i,num in enumerate(nums):
tar_num=target-num
if(tar_num in dict.keys()):
return [dict[tar_num],i]
dict[num]=i