Description:
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].
Solutions:
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
for onenum in nums:
other = target - onenum # 根据前面两个数的相加得到这个结果,那么相减则得到另外一个数的值
f = nums.index(onenum)
if other in nums[f+1:]:
return [f,nums[f+1:].index(other)+f+1]
另外的做法本质相同:
class Solution(object): def twoSum(self, nums, target): for i in range(len(nums)): temp = target - nums[i] if temp in nums and i != nums.index(temp): # 加入了次数限制条件 return [i, nums.index(temp)]