约不到面试,只好潜心钻研算法。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
darkTianTian
V2EX    Python

约不到面试,只好潜心钻研算法。

  •  
  •   darkTianTian 2019-03-16 17:37:34 +08:00 7038 次点击
    这是一个创建于 2403 天前的主题,其中的信息可能已经有所发展或是发生改变。

    裸辞一个多月,只面了几家创业公司,目前一个 offer 还没拿到。每天只能刷 LeetCode 艰难维持。 分享一个我最近写的《剑指 offer 》 python 的题解,https://github.com/darkTianTian/sword-for-offer/tree/master 希望可以帮(pian)助(ji)各(ge)位(star)和我一样还在挣扎的 pythoner.

    第 1 条附言    2019-03-18 23:55:43 +08:00
    我尝试在一楼所说的 58 题上写了常规的写法,但是在 Python 中 str 类型时不可变对象,没法实现 O(1)的空间复杂度。
    所以一行的写法在面试 Python 岗位的时候是绝对可行的,如果真要说是算法岗位,那也用不到 Python,毕竟执行速度不如 C 和 Java。
    34 条回复    2019-03-18 23:57:18 +08:00
    xupefei
        1
    xupefei  
       2019-03-16 20:00:46 +08:00   6


    LZ 你确定在考算法的时候能这么玩?
    azh7138m
        2
    azh7138m  
       2019-03-16 20:28:12 +08:00 via Android
    好怀念刷题的时间(
    leetcode 以数据结构基础为主吧,算法比较少
    lxy42
        3
    lxy42  
       2019-03-16 20:30:45 +08:00 via Android
    Qzier
        4
    Qzier  
       2019-03-16 21:00:49 +08:00 via iPad
    @xupefei 前面的都是赘余的,其实 s[::-1] 即可。至于原地反转,另说。
    Qzier
        5
    Qzier  
       2019-03-16 21:02:33 +08:00
    @xupefei 不好意思,看错了。
    darkTianTian
        6
    darkTianTian  
    OP
       2019-03-16 21:31:28 +08:00
    @xupefei 为什么不能,有些题还不限制各种标准库函数呢。
    darkTianTian
        7
    darkTianTian  
    OP
       2019-03-16 21:36:03 +08:00
    @azh7138m 嗯? LeetCode 上不是算法么
    pwrliang
        8
    pwrliang  
       2019-03-16 21:36:38 +08:00 via Android   1
    跟楼主差不多,我刷题是为了以后不去拧螺丝。挂一个我的博客,https://blog.pwrliang.com
    我在刷用 Java 刷 Leetcode,我不是直接贴代码,而是给出了详细的解释,并尽量写出多种解法。
    cyn
        9
    cyn  
       2019-03-16 21:44:02 +08:00 via Android
    同款头像
    azh7138m
        10
    azh7138m  
       2019-03-16 21:51:54 +08:00
    个人是觉得普及组的题目比较难 :D
    darkTianTian
        11
    darkTianTian  
    OP
       2019-03-16 22:05:59 +08:00
    @cyn hhh,巧了不是
    carlclone
        12
    carlclone  
       2019-03-16 23:35:28 +08:00
    这反转字符串.....你觉得可以 , 面试官可不这么觉得 , 这题目考的是数组操作 , 还是去 LeetCode 看 Discuss 吧
    GodFather66
        13
    GodFather66  
       2019-03-17 01:25:32 +08:00
    加油 同为 pythoner 已 star
    lincanbin
        14
    lincanbin  
       2019-03-17 02:37:40 +08:00 via Android   3
    1 楼那个题目,考察的核心是尽量少的空间复杂度,因为操作的空间足够少,可以在 L1 cache 里完成,就会非常非常快……

    实际上应该先逐字母翻转( LeetCode Reverse String,从中点往两边扫描不停 swap ),然后再根据空格,针对每个单词再做一次 Reverse String 让单词还原回正确的顺序,这个操作还可以并行(不过 Python 因为 GIL 体验不到这个)。
    lincanbin
        15
    lincanbin  
       2019-03-17 02:43:18 +08:00 via Android   3
    考察算法的主要目的是性能优化,而不是得出解,不然我一个遍历大法岂不是 leetcode 无敌了?
    你的解跟其他人的解,占用了多少时钟周期心里要有个底……
    20015jjw
        16
    20015jjw  
       2019-03-17 05:57:54 +08:00 via Android
    lz 这个刷题态度没用的啊..
    做出来不代表做得好
    tony601818
        17
    tony601818  
       2019-03-17 07:49:00 +08:00
    这是研究 API 还是研究算法?
    codechaser
    &nbs;   18
    codechaser  
       2019-03-17 08:44:29 +08:00 via Android
    @lincanbin 怎么并行啊
    ivechan
        19
    ivechan  
       2019-03-17 09:45:49 +08:00
    @Qzier 那为啥不用 reversed 函数。
    darkTianTian
        20
    darkTianTian  
    OP
       2019-03-17 09:57:40 +08:00
    @20015jjw 看来有些面试官要求不同,我再优化一下。
    darkTianTian
        21
    darkTianTian  
    OP
       2019-03-17 09:59:09 +08:00
    @lincanbin 嗯,看来部分题还需要优化。。
    darkTianTian
        22
    darkTianTian  
    OP
       2019-03-17 10:14:11 +08:00
    @ivechan reversed 确实比[::-1]要好,我优化一下。
    JerryCha
        23
    JerryCha  
       2019-03-17 11:14:39 +08:00
    草,拿 C 写的心里不平衡了
    ipwx
        24
    ipwx  
       2019-03-17 11:19:28 +08:00
    @xupefei 我觉得如果你同时给这个方法和高性能的方法,我如果是面试官,我会很高兴。。。

    因为确实有可读性 > 性能的场景。
    iyaozhen
        25
    iyaozhen  
       2019-03-17 11:22:02 +08:00 via Android
    @JerryCha 放宽心,那种解法面试过不了的
    Justin13
        26
    Justin13  
       2019-03-17 11:39:56 +08:00 via Android
    说真的,刷算法还得上 C。
    亲身经历,因为当你需要算法时,就是追求最佳时间 /空间复杂度的时候。
    很多原生的方法性能并不好,虽然写起来很舒服但是没用。而 C 的版本就是最通用,性能最好的。
    @JerryCha
    darkTianTian
        27
    darkTianTian  
    OP
       2019-03-17 11:48:12 +08:00
    @ipwx 嗯,是,有时候确实要多写几种方法,搞不清他需要的是哪种。
    darkTianTian
        28
    darkTianTian  
    OP
       2019-03-17 11:50:09 +08:00
    @Justin13 你说的有道理,不过在 python 里面有些原生的方法是通过底层 C 优化过的,所以有的时候,拆开写反倒性能不好,虽然理论上时间复杂度更低。
    Justin13
        29
    Justin13  
       2019-03-17 12:47:49 +08:00 via Android
    @darkTianTian 但是你不知道哪些优化过,那些没有。而 C 的写法是最基础,也是最全面的。任何一个地方都在掌握之下。
    darkTianTian
        30
    darkTianTian  
    OP
       2019-03-17 12:49:44 +08:00
    @Justin13 嗯,不过觉得 C 太难了
    darknoll
        31
    darknoll  
       2019-03-17 16:19:56 +08:00
    做算法题怎么能用 python,肯定不可以的
    Lisanaaa
        32
    Lisanaaa  
       2019-03-17 16:46:44 +08:00
    重在思想,Python 也可以

    结构化算法刷题训练指南: https://xiaozhuanlan.com/Lisanaaa

    拿到题目首先干什么?关注哪些条件?怎么找到解题线索?怎么套已有模版?暴力解法是什么?写完暴力解法应该怎么优化?从哪些方面优化?优化后怎么总结?怎么编写自己的解题模版?

    经过上百篇文章的有序结构化刻意训练,你将拥有自己的一套解题体系,算法面试不再是你的短板!

    结构化算法刷题训练指南: https://xiaozhuanlan.com/Lisanaaa
    tinydebian
        33
    tinydebian  
       2019-03-18 21:42:25 +08:00
    楼主,我有些 Python 的工作需要请人帮助,你愿意吗?
    darkTianTian
        34
    darkTianTian  
    OP
       2019-03-18 23:57:18 +08:00
    @tinydebian 是什么样类型的工作呢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5592 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 08:10 PVG 16:10 LAX 01:10 JFK 04:10
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86