裸辞一个多月,只面了几家创业公司,目前一个 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 ![]() |
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 ![]() 跟楼主差不多,我刷题是为了以后不去拧螺丝。挂一个我的博客,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 ![]() 1 楼那个题目,考察的核心是尽量少的空间复杂度,因为操作的空间足够少,可以在 L1 cache 里完成,就会非常非常快…… 实际上应该先逐字母翻转( LeetCode Reverse String,从中点往两边扫描不停 swap ),然后再根据空格,针对每个单词再做一次 Reverse String 让单词还原回正确的顺序,这个操作还可以并行(不过 Python 因为 GIL 体验不到这个)。 |
![]() | 15 lincanbin 2019-03-17 02:43:18 +08:00 via Android ![]() 考察算法的主要目的是性能优化,而不是得出解,不然我一个遍历大法岂不是 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 还是研究算法? |
![]() | &nbs; 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 是什么样类型的工作呢 |