ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

LeetCode-1. 两数之和

LeetCode-1. 两数之和 这里写目录标题方法一 暴力法方法二Python3 字典 (dict) 学习笔记一、字典语法格式二、创建字典1. 创建空字典2. 普通字典创建三、访问字典的值1. [键]方式取值2. 安全取值 get ()四、修改字典update () 批量更新五、删除字典元素pop / popitem方法一 暴力法classSolution:deftwoSum(self,nums:List[int],target:int)-List[int]:nlen(nums)foriinrange(n):forjinrange(i1,n):ifnums[i]nums[j]target:return[i,j]return[]时间复杂度O(N2)其中 N 是数组中的元素数量。最坏情况下数组中任意两个数都要被匹配一次。空间复杂度O(1)。方法二classSolution:deftwoSum(self,nums:List[int],target:int)-List[int]:hashtabledict()fori,numinenumerate(nums):iftarget-numinhashtable:return[hashtable[target-num],i]hashtable[nums[i]]ireturn[]时间复杂度O(N)其中 N 是数组中的元素数量。对于每一个元素 x我们可以 O(1) 地寻找 target - x。空间复杂度O(N)其中 N 是数组中的元素数量。主要为哈希表的开销。Python3 字典 (dict) 学习笔记参考菜鸟教程‑Python3 字典字典是可变容器模型以key‑value(键‑值对)存储任意类型对象。特点键唯一、不可变值可重复可以任意类型。一、字典语法格式d {key1: value1, key2: value2}键值对用**冒号:分隔键值对之间用逗号,**分隔整体包裹在{}大括号内❗不要用dict作为变量名它是 Python 内置函数键必须不可变类型字符串、数字、元组列表不能做键会报TypeError: unhashable type: list值可以是任意 Python 对象类型不限示例tinydict {name: runoob, likes: 123, url: www.runoob.com}二、创建字典1. 创建空字典# 方式1大括号 emptyDict {} # 方式2dict()内置函数 emptyDict dict() print(emptyDict) # {} print(len(emptyDict)) # 0 print(type(emptyDict)) # class dict2. 普通字典创建d1 {abc: 456} d2 {abc:123, 98.6:37}三、访问字典的值1.[键]方式取值tinydict {Name: Runoob, Age: 7, Class: First} print(tinydict[Name]) # Runoob print(tinydict[Age]) # 7⚠️ 如果键不存在直接[key]取值会抛出KeyError异常。2. 安全取值 get ()# get(键, 默认值)键不存在返回默认值不会报错 print(tinydict.get(Name)) print(tinydict.get(Alice, 不存在该键))四、修改字典新增键值对直接写字典[新键]值更新已有键对已存在 key 重新赋值覆盖旧值tinydict {Name: Runoob, Age: 7, Class: First} tinydict[Age] 8 # 更新已有key tinydict[School] 菜鸟教程 # 新增key print(tinydict[Age]) # 8 print(tinydict[School]) # 菜鸟教程update () 批量更新d {a:1} d.update({b:2,c:3}) print(d) # {a:1, b:2, c:3}五、删除字典元素tinydict {Name: Runoob, Age: 7, Class: First} del tinydict[Name] # 删除指定键值对 tinydict.clear() # 清空字典字典对象还在变成{} del tinydict # 彻底删除字典对象变量直接销毁访问会NameErrorpop / popitemd {a:1, b:2} val d.pop(a) # 删除keya返回被删除的值 last_item d.popitem() # 删除最后一组键值返回(key,value)元组
返回列表