V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  gwy15  ›  全部回复第 4 页 / 共 11 页
回复总数  209
1  2  3  4  5  6  7  8  9  10 ... 11  
@mind3x 随口一说?
这个 reduce 展开就是
it = zip()
v: Tuple = next(it)
for pair in it:
....v = v + pair
return v

您来分析下这个是您说的 O(N) 吗?您觉得 python 还会把 v = v+pair 优化成 v.extend(pair) 吗?
@Shazoo
list slice -> O(N)
zip -> O(N)
reduce -> N * O(tuple.add)
tuple.add -> N
正常的写法:空间(额外) O(1),时间 O(n)
你的“一行”写法:空间(额外) O(n),时间 O(n^2),伴随大量 GC

我写了个 benchmark,你的“一行解法”仅仅 n=100k 的规模,就要 30s 一次,对比正常写法 24ms,慢了一千倍以上。

https://imgchr.com/i/UzxYLQ

https://gist.github.com/gwy15/22616306f560f65d77b6ca23954e91a3

你当然可以说“题目就是 n~500,这么写也能过”。能过是一回事,明明有性能更好也更好理解的代码不用,非要这么写,那以后系统瓶颈的时候你是打算拿着 cProfile 慢慢找瓶颈吗?

至于拿 leetcode 的排行说性能,leetcode 的运行时间打底就是 40ms,能说明啥?你加个 time.sleep(0.03) 都可能是 40ms 。

拿高阶函数写又不是什么很有优越感的事情,楼主上来就“杠精”、“不懂 python3”、“不了解高阶函数”、“不要出来秀智商”,这个行为让人觉得很莫名其妙。
@doraemon1293 super 是根据 MRO 链走的,不是“父类”。
上面有点笔误
Third -> First -> Second -/-> Base
>>> second
>>> first
>>> third
调用 super() 的时候实际上会跟随 MRO 进行链式调用,在这个例子里面,调用链是(从左到右宽度优先搜索)
`Third` -> `First` -> `Second` -> `Base` -> `object`
可以用 `Third.mro()` 查看。

因此,在调用的时候,Third.__init__ 里面 super().__init__() 实际调用的是 Second.__init__(self),而 Second.__init__ 里面没有继续调用 super,所以 Base 的 __init__ 没有调用。
2020-07-09 16:53:52 +08:00
回复了 L4Liiyooooo 创建的主题 Python 大佬们求问一下 我有一个需求 Python 能实现吗?
没看懂你定义的“随意随机”是什么意思,我描述下我的理解。

矩阵 A_ij 是 5x5 的矩阵,选出其中若干行,将行向量相加,得到 a,要求 a_0 > 1, a_1 > 2, etc.

如果是每行 01 选择的话直接位运算就行,2^5 复杂度;
如果是每行都可以若干次选择(线性组合),那就解五元线性不等式就行了,找本优化方面的书看。
2020-07-08 15:05:34 +08:00
回复了 TimeLover 创建的主题 奇思妙想 创业想法:回收大学校园里无人认领的自行车,可行吗?
两个月就回收,如果出去访学就一学期了至少四个月……
2020-06-29 20:27:02 +08:00
回复了 Te11UA 创建的主题 Python 请问静态资源取走后删除怎么做性能最高,代码最简洁呢
zero-copy (sendfile)?
2020-06-28 21:53:01 +08:00
回复了 sudoy 创建的主题 问与答 WSL 安装 docker 应该用哪个方法?
我是 WSL1,装的 Docker desktop,.*shrc/ 里面加一句 export DOCKER_HOST=tcp://localhost:2375 就可以连接 docker desktop 了。缺点是不能直接挂载 WSL 的文件系统,还是得用 windows 的路径
2020-06-26 18:39:08 +08:00
回复了 morningD 创建的主题 奇思妙想 吃火锅想到的一个概率问题:锅里还剩几个蛋
https://gwy15.com/blog/%E7%81%AB%E9%94%85%E6%8D%9E%E8%9B%8B

v 站不支持公式,我丢我博客去了。相对于直接求解 DP 的 O(n^2 T) ,把复杂度降到了 O(n^2)。由最后的分式结果我比较怀疑能找到 O(n) 的解法。
2020-06-26 17:17:46 +08:00
回复了 morningD 创建的主题 奇思妙想 吃火锅想到的一个概率问题:锅里还剩几个蛋
能解出来解析表达式,我得写写。最后得解一个 n 元 1 次方程,或者递归也可以。
2020-06-26 16:47:58 +08:00
回复了 chenqh 创建的主题 Python 单元测试的时候创建数据库,插入测试数据耗时太长怎么办
sqlite 内存数据库?
2020-06-25 14:54:27 +08:00
回复了 vertigo 创建的主题 程序员 [巨型难题] 如何通过 Python ,确定图片剪裁位置
SIFT, SURF, etc.
2020-06-20 21:07:03 +08:00
回复了 Windy00 创建的主题 宽带症候群 大家乐呵乐呵
表格标题:国内外 骨干网 网内 时延和丢包率 情况

楼主想表达什么?
2020-06-12 21:37:33 +08:00
回复了 prenwang 创建的主题 程序员 小学生数学题(编程解答)挑战
从有奇数连接边的点开始,到奇数连接的点停止。
如果全是偶数,随便哪个都可以。
如果两个以上奇数连接点,无解。
不可能只有一个奇数连接边的点。
2020-06-07 18:08:06 +08:00
回复了 tesorouo 创建的主题 问与答 找最大的第 m 个数问题
@tesorouo 这个可以原地 o1 空间,on 时间。就是快排只排一半。但是你要求单次遍历(只给一个单向迭代器),这个不适用
2020-06-07 17:52:01 +08:00
回复了 tesorouo 创建的主题 问与答 找最大的第 m 个数问题
@4rnold 他要求一次遍历且不可修改。
1  2  3  4  5  6  7  8  9  10 ... 11  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1199 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms · UTC 18:38 · PVG 02:38 · LAX 11:38 · JFK 14:38
Developed with CodeLauncher
♥ Do have faith in what you're doing.