Sanko
V2EX  ›  问与答

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

  •  
  •   Sanko · Aug 15, 2021 · 4923 views
    This topic created in 1913 days ago, the information mentioned may be changed or developed.
    数组和字符串相关的基础算法
    Supplement 1  ·  Aug 15, 2021
    我知道标准库,也知道有些第三方库都可以实现
    但是还是想问下各位彦祖为什么编程语言本身不做呢?一个算法最多浪费几 kb 左右的存储空间而已
    出于什么权衡不做或者交给第三方库来做呢
    Supplement 2  ·  Aug 15, 2021
    感谢各位认真回答的彦祖
    阴阳怪气的爪巴
    37 replies  •  2021-08-17 02:22:04 +08:00
    EPr2hh6LADQWqRVH
    EPr2hh6LADQWqRVH
    Aug 15, 2021 via Android❤️5
    1
    要你何用
    sutra
    sutra
    Aug 15, 2021
    2
    不是有很多工具类库么?
    Hsinyao
    Hsinyao
    Aug 15, 2021 via iPhone
    3
    楼主这个 idea 还挺有意思
    learningman
    learningman
    Aug 15, 2021 via Android
    4
    然后加多少呢,全加进去全变成内置函数?那一个对象得拖多大一串啊。
    不是有 algorithm.h 嘛,你也可以自己写一个啊,指不定用的人多就成了 C24 标准呢
    ipwx
    ipwx
    Aug 15, 2021
    5
    如果这两个算法也算是常用需要进库函数,那么有很多很多同样“常用”的算法也得进。

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

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

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

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

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

    一个道理。
    TomatoCLI
    TomatoCLI
    Aug 16, 2021
    36
    github copilot ?
    kilasuelika
    kilasuelika
    Aug 17, 2021 via Android
    37
    从来没在刷题以外的场景见过需要用这些算法的情况。所以如楼上说的,根本不常用。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4266 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 108ms · UTC 07:43 · PVG 15:43 · LAX 23:43 · JFK 02:43
    ♥ Do have faith in what you're doing.