裸辞一个多月,只面了几家创业公司,目前一个 offer 还没拿到。每天只能刷 LeetCode 艰难维持。 分享一个我最近写的《剑指 offer 》 python 的题解,https://github.com/darkTianTian/sword-for-offer/tree/master 希望可以帮(pian)助(ji)各(ge)位(star)和我一样还在挣扎的 pythoner.
1
xupefei 2019-03-16 20:00:46 +08:00 6
|
2
azh7138m 2019-03-16 20:28:12 +08:00 via Android
好怀念刷题的时间(
leetcode 以数据结构基础为主吧,算法比较少 |
6
darkTianTian OP @xupefei 为什么不能,有些题还不限制各种标准库函数呢。
|
7
darkTianTian OP @azh7138m 嗯? LeetCode 上不是算法么
|
8
pwrliang 2019-03-16 21:36:38 +08:00 via Android 1
跟楼主差不多,我刷题是为了以后不去拧螺丝。挂一个我的博客,https://blog.pwrliang.com
我在刷用 Java 刷 Leetcode,我不是直接贴代码,而是给出了详细的解释,并尽量写出多种解法。 |
9
cyn 2019-03-16 21:44:02 +08:00 via Android
同款头像
|
10
azh7138m 2019-03-16 21:51:54 +08:00
个人是觉得普及组的题目比较难 :D
|
11
darkTianTian OP @cyn hhh,巧了不是
|
12
carlclone 2019-03-16 23:35:28 +08:00
这反转字符串.....你觉得可以 , 面试官可不这么觉得 , 这题目考的是数组操作 , 还是去 LeetCode 看 Discuss 吧
|
13
GodFather66 2019-03-17 01:25:32 +08:00
加油 同为 pythoner 已 star
|
14
lincanbin 2019-03-17 02:37:40 +08:00 via Android 3
1 楼那个题目,考察的核心是尽量少的空间复杂度,因为操作的空间足够少,可以在 L1 cache 里完成,就会非常非常快……
实际上应该先逐字母翻转( LeetCode Reverse String,从中点往两边扫描不停 swap ),然后再根据空格,针对每个单词再做一次 Reverse String 让单词还原回正确的顺序,这个操作还可以并行(不过 Python 因为 GIL 体验不到这个)。 |
15
lincanbin 2019-03-17 02:43:18 +08:00 via Android 3
考察算法的主要目的是性能优化,而不是得出解,不然我一个遍历大法岂不是 leetcode 无敌了?
你的解跟其他人的解,占用了多少时钟周期心里要有个底…… |
16
20015jjw 2019-03-17 05:57:54 +08:00 via Android
lz 这个刷题态度没用的啊..
做出来不代表做得好 |
17
tony601818 2019-03-17 07:49:00 +08:00
这是研究 API 还是研究算法?
|
18
codechaser 2019-03-17 08:44:29 +08:00 via Android
@lincanbin 怎么并行啊
|
20
darkTianTian OP @20015jjw 看来有些面试官要求不同,我再优化一下。
|
21
darkTianTian OP @lincanbin 嗯,看来部分题还需要优化。。
|
22
darkTianTian OP @ivechan reversed 确实比[::-1]要好,我优化一下。
|
23
JerryCha 2019-03-17 11:14:39 +08:00
草,拿 C 写的心里不平衡了
|
26
Justin13 2019-03-17 11:39:56 +08:00 via Android
说真的,刷算法还得上 C。
亲身经历,因为当你需要算法时,就是追求最佳时间 /空间复杂度的时候。 很多原生的方法性能并不好,虽然写起来很舒服但是没用。而 C 的版本就是最通用,性能最好的。 @JerryCha |
27
darkTianTian OP @ipwx 嗯,是,有时候确实要多写几种方法,搞不清他需要的是哪种。
|
28
darkTianTian OP @Justin13 你说的有道理,不过在 python 里面有些原生的方法是通过底层 C 优化过的,所以有的时候,拆开写反倒性能不好,虽然理论上时间复杂度更低。
|
29
Justin13 2019-03-17 12:47:49 +08:00 via Android
@darkTianTian 但是你不知道哪些优化过,那些没有。而 C 的写法是最基础,也是最全面的。任何一个地方都在掌握之下。
|
30
darkTianTian OP @Justin13 嗯,不过觉得 C 太难了
|
31
darknoll 2019-03-17 16:19:56 +08:00
做算法题怎么能用 python,肯定不可以的
|
32
Lisanaaa 2019-03-17 16:46:44 +08:00
重在思想,Python 也可以
结构化算法刷题训练指南: https://xiaozhuanlan.com/Lisanaaa 拿到题目首先干什么?关注哪些条件?怎么找到解题线索?怎么套已有模版?暴力解法是什么?写完暴力解法应该怎么优化?从哪些方面优化?优化后怎么总结?怎么编写自己的解题模版? 经过上百篇文章的有序结构化刻意训练,你将拥有自己的一套解题体系,算法面试不再是你的短板! 结构化算法刷题训练指南: https://xiaozhuanlan.com/Lisanaaa |
33
tinydebian 2019-03-18 21:42:25 +08:00
楼主,我有些 Python 的工作需要请人帮助,你愿意吗?
|
34
darkTianTian OP @tinydebian 是什么样类型的工作呢
|