我正在做一个名为two sum的leet代码问题,如下所示:
给定一个整数数组,返回两个数字的索引,使它们相加到特定目标。
您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素。
示例:
给定nums = [2,7,11,15],target = 9,
因为nums [0] + nums [1] = 2 + 7 = 9, 返回[0,1]。
我写的代码是:
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
return [num for num in nums if (target-num) in nums and (target-num) != num]
这被认为太深奥了吗?有没有更快的方法来完成这项任务而不会失去可读性?对我来说,这似乎清晰易懂,但我想让别人检查一下。
我理解效率与可读性论点的注意事项:我并不是想让程序更有效率。这纯粹是一个教育问题,为了我自己的利益(我想是自我);我只是想知道这是否是首选的攻击方法。
提前致谢!