V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Sanko
V2EX  ›  问与答

编程语言为什么不把 leetcode 上面的一些常用的算法集成进内部呢,比如最长公共子序列啊,最长子串

  •  
  •   Sanko · 106 天前 · 3097 次点击
    这是一个创建于 106 天前的主题,其中的信息可能已经有所发展或是发生改变。
    数组和字符串相关的基础算法
    第 1 条附言  ·  106 天前
    我知道标准库,也知道有些第三方库都可以实现
    但是还是想问下各位彦祖为什么编程语言本身不做呢?一个算法最多浪费几 kb 左右的存储空间而已
    出于什么权衡不做或者交给第三方库来做呢
    第 2 条附言  ·  106 天前
    感谢各位认真回答的彦祖
    阴阳怪气的爪巴
    37 条回复    2021-08-17 02:22:04 +08:00
    avastms
        1
    avastms   106 天前 via Android   ❤️ 5
    要你何用
    sutra
        2
    sutra   106 天前
    不是有很多工具类库么?
    Hsinyao
        3
    Hsinyao   106 天前 via iPhone
    楼主这个 idea 还挺有意思
    learningman
        4
    learningman   106 天前 via Android
    然后加多少呢,全加进去全变成内置函数?那一个对象得拖多大一串啊。
    不是有 algorithm.h 嘛,你也可以自己写一个啊,指不定用的人多就成了 C24 标准呢
    ipwx
        5
    ipwx   106 天前
    如果这两个算法也算是常用需要进库函数,那么有很多很多同样“常用”的算法也得进。

    说白了这俩就是特殊的动态规划而已啊,随手写一个。又不够常用,进库函数没意思。
    Yvette
        6
    Yvette   106 天前   ❤️ 1
    没理解错的话,标准库不就是干这个的?如果你需要的东西现在标准库里还没有的话,大概率是这个需求不够常见或者不够通用。
    Jooooooooo
        7
    Jooooooooo   106 天前
    最常用的有, 比如 java, python 自带的 sort 方法都是一种非常高效的 timsort 算法

    但其它不是很常用的一般都是第三方工具库去实现的
    levelworm
        8
    levelworm   106 天前 via Android
    这是 leetcode 常用吧,现实中不知道是否常用。今天看了三道题,有一道是什么二叉树汇总,就是每个 node 是所有比自己小的 node 之和。这题目仅仅是中等难度但是我真不知道现实中会不会有用。。。
    az467
        9
    az467   106 天前
    刷题魔怔了属于是
    raaaaaar
        10
    raaaaaar   106 天前 via Android
    不够常用,通常第三方库有
    Perry
        11
    Perry   106 天前 via iPhone
    有些题目完全是伪需求,或者现实需求比题目要复杂很多,这种算法很难完全通用。
    Trim21
        12
    Trim21   106 天前 via Android
    用到的算法是有会的,但是你提到的这种大部分情况也用不上吧…
    Rheinmetal
        13
    Rheinmetal   106 天前
    不刷题你 1 年都用不到一次聘什么进标准库
    swulling
        14
    swulling   106 天前 via iPhone
    标准库会放一些工程上常用的算法,但是你提的两个显然不是
    Cu635
        15
    Cu635   106 天前
    lz 应该知道“标准库”这回事儿吧……
    Sanko
        16
    Sanko   106 天前
    @learningman 用的时候可以按需导入呀
    Sanko
        17
    Sanko   106 天前
    @Cu635 老哥,我肯定知道啊
    vindurriel
        18
    vindurriel   106 天前 via iPhone
    因为命中率低 大部分用不上 啊哈哈
    存在已知可解编程问题的最简实现大全这种 repo
    misdake
        19
    misdake   106 天前
    一点也不常用啊
    ipwx
        20
    ipwx   106 天前
    @Sanko 全都塞标准库,那运行时和编译速度该多慢啊。当然要第三方独立的库啊

    一个算法几 kb,但像你说的这俩算法都不够通用啊,不常用啊。按你这个标准筛选,找出来的算法都加进去,标准库可以多几百兆,编译速度可以下降一个数量级啊。

    明明手写也就 50 行代码的事情。。。
    ltm
        21
    ltm   106 天前 via Android   ❤️ 2
    「内卷对人智力和行为的异化」
    learningman
        22
    learningman   106 天前
    "出于什么权衡不做或者交给第三方库来做呢"
    因为别人觉得没用啊,你觉得有用你自己包装一个开源出来呗,啥叫交给第三方库,三方库又不是标准委员会发外包做的
    msg7086
        23
    msg7086   106 天前   ❤️ 1
    不如先解释一下编程语言为什么要把 leetcode 的题做进标准库里,而不是先无脑假定应该做进去,然后问为什么不做。
    BiteTheDust
        24
    BiteTheDust   106 天前
    可以参考 atcoder 他们的库里甚至整合了网络流
    不过从另一个角度来说 leetcode 面相群体是那些找工作面试的人 面试的时候总不能说我调个 leetcode 的库吧
    BiteTheDust
        25
    BiteTheDust   106 天前
    https://github.com/atcoder/ac-library
    可以看看,其实也没整合几种算法,但是都是比较常用,而且只要知道输入输出就可以的
    Cbdy
        26
    Cbdy   106 天前
    “一个算法最多浪费几 kb 左右的存储空间而已”
    xylxAdai
        27
    xylxAdai   106 天前
    因为这些只对刷题的人常用,几 kb 不是空间啊?
    anguiao
        28
    anguiao   106 天前 via Android
    通用性不够强、使用频率不够高
    c0xt30a
        29
    c0xt30a   106 天前
    c++: lower_bound, upper_bound, rotate, next_permutation, binary_search, nth_element ...
    witcherhope
        30
    witcherhope   106 天前
    关键字 leetcode 常用,都说了八股文常用,实际场景能用到的基本都进了标准库,并且一直在迭代。
    agagega
        31
    agagega   106 天前 via iPhone
    会做,但考虑到通用性会做的比较抽象。楼上有人说了 C++,Ruby 的 Enumerable 也有很多很好用的方法 https://ruby-doc.org/core-3.0.2/Enumerable.html
    zxCoder
        32
    zxCoder   106 天前 via Android
    因为大多数没用啊………
    musi
        33
    musi   106 天前
    有些算法只能在刷题时候见到
    James369
        34
    James369   105 天前
    我认为这些什么 leetcode 啊、设计模式啦、敏捷工程啦,都是些花拳秀脚的玩意,90%情况下是用不到的(或者说自然而然就会了)。 其实都是用来懵人的。
    matrix67
        35
    matrix67   105 天前
    这个应该就相当于汉语为啥没有一个专有名词描述 “有人会在 V2EX 上问编程语言为什么不把 leetcode 上面的一些常用的算法集成进内部呢” 这种行为。

    但是一旦用的人多了,就会塞到汉语的标准库里,比如黔驴技穷啊,泯然众人啊之类的。

    一个道理。
    cyrivlclth
        36
    cyrivlclth   105 天前
    github copilot ?
    kilasuelika
        37
    kilasuelika   104 天前 via Android
    从来没在刷题以外的场景见过需要用这些算法的情况。所以如楼上说的,根本不常用。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2947 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 10:57 · PVG 18:57 · LAX 02:57 · JFK 05:57
    ♥ Do have faith in what you're doing.