# 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 # # 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 # # # # 示例: # # 给定 nums = [2, 7, 11, 15], target = 9 # # 因为 nums[0] + nums[1] = 2 + 7 = 9 # 所以返回 [0, 1] # # Related Topics 数组 哈希表 # leetcode submit region begin(Prohibit modification and deletion) class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: dict1 = {} # 遍历一遍列表对应的时间复杂度为O(n) for i in range(0, len(nums)): # 相减得到另一个数值 num = target - nums[i] # 如果另一个数值不在字典中,则将第一个数值及其的索引报错在字典中 # 因为在字典中查找的时间复杂度为O(1),因此总时间复杂度为O(n) if num not in dict1: dict1[nums[i]] = i # 如果在字典中则返回 else: return [dict1[num], i] # leetcode submit region end(Prohibit modification and deletion) # # second me: # class Solution: # def twoSum(self, nums: List[int], target: int) -> List[int]: # if len(nums) < 2: # return # for i in range(0, len(nums) - 1): # for j in range(i + 1, len(nums)): # if nums[i] + nums[j] == target: # return [i, j]
原文:https://www.cnblogs.com/qianzhengkai/p/13159285.html