Array数组
1. 两数之和
1、暴力解法:时间复杂度为N(N*N)
class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: for i in range(0, len(nums)): for j in range(i + 1, len(nums)): if nums[i] + nums[j] == target: return [i,j]
2、哈希表
class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: hashtable = {} # hashmap = dict(),创建一个空字典 for i, num in enumerate(nums): # enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for循环当中。 if target - num in hashtable: # 循环遍历num时,如果hashtable中已经有另一个元素(target-num)在哈希表中,则直接返回这两个元素的索引 return [hashtable[target - num], i] hashtable[num] = i # 否则将该元素和索引添加到字典中 return []
268. 丢失的数字