2021-08-13 最近小结

最近在看leetcode‘队列-栈’相关

1.广度优先搜索BFS的实现方法之一—队列
2.最短路径求解-BFS

python

1.collection是模块中的deque双向队列性能比list自建队列性能好
2.列表 a ----b =a 实际为引用,浅拷贝考虑b = a[:]
3.set集合和dict字典实际是哈希表,搜索性能远大于list
为什么?
通过对键的哈希处理,使得其直接储存在相应物理位置
例如字典的key = 66,哈希后得88,那就直接储存在88的单元上,搜索也是直 接哈希运算,实际复杂度O(1),而列表的搜索为偏移搜索,复杂度O(n)
4.循环变量尽量不改变
5.元组中存在列表例如([1,2,3],1),其中,列表[1,2,3]可以改变(方法),而该类元组不能作为集合和字典的键

>>> a = [1,2,3]
>>> b = (a,1)
>>> b
([1, 2, 3], 1)
>>> a.pop()
3
>>> b
([1, 2], 1)
>>> s = set()
>>> d = {}
>>> s.add(b)
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    s.add(b)
TypeError: unhashable type: 'list'
>>> d[b] = 1
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    d[b] = 1
TypeError: unhashable type: 'list'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值