题目
给定一个数组和一个目标数,找出数组中的两个数,使得两数之和为该目标数,返回两个数的下标,每个数只能用一次。答案存在且唯一。
自练
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
s = []
for i, item in enumerate(nums):
s.append((item, i))
s = sorted(s, key = lambda item:item[0])
i, j = 0, len(nums)-1
while(1):
if s[i][0] + s[j][0] == target:
return([s[i][1], s[j][1]])
break
elif s[i][0] + s[j][0] > target:
j -= 1
else:
i += 1
结果
执行用时: 48 ms , 在所有 Python3 提交中击败了97.34% 的用户
内存消耗:15.3 MB , 在所有 Python3 提交中击败了12.96% 的用户