Two Sum的意思是求出2个和为指定值的2个数的index + 1。因为python是从0开始的,所以最后要加上1.鉴于原题已经假设有且仅有一个解,因此就没有考虑特殊情况啦。需要注意的是如果是2个想等的数的和为target,需要使用index的时候注意一下,包括后面的index都会跟着改变。代码如下:
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
list1 = []
list2 = sorted(nums)
for i in range(len(nums)):
if target - list2[i] in nums:
if list2[i] * 2 == target:
a = nums.index(list2[i])
list1.append(a + 1)
list1.append(nums[a + 1:].index(list2[i]) + 1 + a + 1)
else:
list1.append(nums.index(list2[i]) + 1)
list1.append(nums.index(target - list2[i]) + 1)
list1.sort()
return list1
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
list1 = []
list2 = sorted(nums)
for i in range(len(nums)):
if target - list2[i] in nums:
if list2[i] * 2 == target:
a = nums.index(list2[i])
list1.append(a + 1)
list1.append(nums[a + 1:].index(list2[i]) + 1 + a + 1)
else:
list1.append(nums.index(list2[i]) + 1)
list1.append(nums.index(target - list2[i]) + 1)
list1.sort()
return list1