V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
AkaGhost
V2EX  ›  程序员

想知道大家工作中力扣 Hot100 里的哪个算法在业务逻辑里会用的比较多?为什么?

  •  
  •   AkaGhost · 1 天前 · 2880 次点击
    55 条回复    2025-03-21 22:29:02 +08:00
    evan1
        1
    evan1  
       1 天前   ❤️ 11
    完全没有, 我的业务逻辑就是 CRUD.
    securityCoding
        2
    securityCoding  
       1 天前
    用到几乎为 0 ,倒是时间/空间复杂度在做设计时经常会考虑考虑
    angrylid
        3
    angrylid  
       1 天前
    没有,没有,没有。
    力扣主要是起到筛人的作用
    coldle
        4
    coldle  
       1 天前   ❤️ 5
    拿位运算写状态 ☝️🤣
    niubilewodev
        5
    niubilewodev  
       1 天前
    没有。
    99.99%的工作不需要什么算法,我同事要是在项目上自己写算法,我第一个反对。
    wuzhewuyou
        6
    wuzhewuyou  
       1 天前 via Android
    没有,面试时啃一下
    irisdev
        7
    irisdev  
       1 天前   ❤️ 1
    dfs 肯定会有,其他基本没用过
    ppxppx
        8
    ppxppx  
       1 天前 via Android   ❤️ 1
    很多,搞传统算法解决 PCB 布线问题。感觉自己时不时就得造个算法解决问题😂,不然根本搞不下去。真心累,蛮有压力的,不过也挺有意思。
    devfeng
        9
    devfeng  
       1 天前   ❤️ 2
    android 开发,最近写过的算法:dfs 查找 View 树,视频片段合并区间
    nightwitch
        10
    nightwitch  
       1 天前
    最基本的倒腾遍历树状结构还算常用吧,如果你的代码出现了树状结构或者图这种数据结构的话,肯定会有需求来花式遍历的。
    然后什么 LRU 啊,找一堆数据里前 K 个最大的这种还是业务代码会出现的。
    Leetcode 经常高频出现的链表有关的题基本不会在工作里出现,链表太少见了
    LotusChuan
        11
    LotusChuan  
       1 天前   ❤️ 6
    唯一一次是查 bug 发现源头是个前人写的二叉树,改成三方库就修好了
    yinmin
        12
    yinmin  
       1 天前 via iPhone
    这个和大学里的高等数学一样呢,工作中多少人会用到高等数学呢(肯定有但不多)
    yinmin
        13
    yinmin  
       1 天前 via iPhone
    2000/2010 年代还没这样,为啥最近小十年招聘热衷于这类题目?有一个原因是:有一小撮牛人是从小学初中就开始走 noip-nio-acm 上来的,他们认识这类题目是基础,不会做就不是程序员。
    Bingchunmoli
        14
    Bingchunmoli  
       18 小时 20 分钟前 via Android
    哈希表算吗 乁⁠༼⁠☯⁠‿⁠☯⁠✿⁠༽⁠ㄏ
    Avafly
        15
    Avafly  
       17 小时 31 分钟前
    还是有些的, 最近在用 C 语言做图像处理相关就要用到各种算法, 要不太慢了.
    比如在实现连通组件分析的时候用 two-pass 算法实现, 还用到了 disjoint-set 数据结构, 最后速度比 opencv 还快.
    MRG0
        16
    MRG0  
       17 小时 12 分钟前
    好的库太多了,拿来吧你
    songray
        17
    songray  
       16 小时 57 分钟前
    各种从祖宗节点找重孙节点和从重孙节点找祖宗节点的地方...
    anviod
        18
    anviod  
       16 小时 44 分钟前
    有的增量更新/同步数据 找出更新前和更新后的差别 需要用到
    sir283
        19
    sir283  
       16 小时 29 分钟前 via Android
    我直接 ctrl c 跟 ctrl v ,完全用不到那种高深的算法,你的就是我的,我的还是我的。
    erenming
        20
    erenming  
       16 小时 15 分钟前
    @LotusChuan haha ,说不定其实也不一定是自己写的,大概率是第三方库 copy 过来改的
    wyntalgeer
        21
    wyntalgeer  
       16 小时 13 分钟前
    用不了一点
    iyiluo
        22
    iyiluo  
       16 小时 12 分钟前
    递归吧,像菜单,组织树,比较常见
    Dorathea
        23
    Dorathea  
       16 小时 9 分钟前
    如果只是停留在业务层, 几乎不会用到
    都是数据结构+简单的遍历, 少量位操作. 很少用到称得上算法的东西
    脱离业务向底层, 又息息相关, 用到的东西几乎全是数据结构+算法
    luckyrayyy
        24
    luckyrayyy  
       16 小时 3 分钟前
    topk 这种用到过,别的真没
    ixixi
        25
    ixixi  
       15 小时 56 分钟前
    都是建议同事把自己写的算法改成第三方库。。。
    soulflysimple123
        26
    soulflysimple123  
       15 小时 52 分钟前
    最常用的就是各种树形结构的处理,比如本节点可以查看当前节点一直到根节点,当前节点所有子节点的数据之类
    qwertyzzz
        27
    qwertyzzz  
       15 小时 18 分钟前
    提前 hashMap 存储这种吧 我记得有个题是这样
    csfreshman
        28
    csfreshman  
       15 小时 8 分钟前
    可以不用,但不能不会
    hmxxmh
        29
    hmxxmh  
       15 小时 0 分钟前
    进去拧螺丝,除了大牛,谁敢说自己写的算法能好过开源的。。所以都是 curd,调调 api ,调调参数
    InkStone
        30
    InkStone  
       14 小时 54 分钟前
    做算法题很多时候不是为了让你真的在业务中实现那个数据结构,而是让你对自己代码的时间、空间复杂度有个直观的概念。
    kilakilia007
        31
    kilakilia007  
       14 小时 29 分钟前 via Android
    拓扑判环,递归,没了
    qiuhang
        32
    qiuhang  
       14 小时 25 分钟前
    真正原样运用的没有,但是对于时间空间复杂度的思考,会潜移默化地表现在日常写业务代码的过程中。然后一些优化思路偶尔也能用上。举个例子,我遇到过个真实需求,给定 500 万个预先处理好的 7 位浮点数,然后输入一个浮点数,算出来有多少个浮点数比它大。因为要用于线上,所以对耗时的要求比较高,需要在 5 毫秒内搞定。常规地去遍历一遍,一一比对,得花两三百毫秒。这个时候力扣那些以空间换时间的思路就能派上用场了。
    qiuhang
        33
    qiuhang  
       14 小时 24 分钟前
    还有就是对于递归的理解,没刷力扣之前,真觉得自己理解了递归,刷完才发现自己原来根本不会用。递归在工作中用到的机会还挺多。
    coderzhangsan
        34
    coderzhangsan  
       14 小时 22 分钟前
    主要用来就是筛人,有些功能需要考虑算法设计实现,但是现在 ai 普及,这东西完全交给 ai 去写,所以这块权重又弱了。
    meilicat
        35
    meilicat  
       12 小时 29 分钟前
    @coldle 太对了 我就这样搞过
    meilicat
        36
    meilicat  
       12 小时 28 分钟前
    就写了个递归吧 其他的都没用到
    xxx78797084
        37
    xxx78797084  
       12 小时 27 分钟前
    手写 parser (
    fulln
        38
    fulln  
       12 小时 11 分钟前
    位运算,前缀树,递归如果也算的话
    Donaldo
        39
    Donaldo  
       12 小时 10 分钟前   ❤️ 1
    我最经常用的就是二分
    axuahui
        40
    axuahui  
       12 小时 7 分钟前 via Android
    树。
    我再一次业务中的 map 的 key 用了 set
    构建它的时候用了树。

    时间复杂度 o1 ,写了之后同事都说牛批
    rogerer
        41
    rogerer  
       11 小时 27 分钟前
    二分,发生在每次定位哪个 commit 改坏了的时候
    ccpp132
        42
    ccpp132  
       11 小时 13 分钟前
    @yinmin 10 年代已经这样了,这一套从硅谷大厂来的,不是国内的发明。

    不过算法其实挺有用的。我有个亲身经历的例子,以前当志愿者给几百个文件排序(物理),采用快排极大的提高了效率。就按一个分界点直接把文件全分两堆再分别排...
    1252603486
        43
    1252603486  
       10 小时 56 分钟前
    找 bug 的时候二分法用的最多,不过大部分时候没意识到这是个算法,还有如果给一堆文件排序的话,分好几块一起排序快了很多
    ooo4
        44
    ooo4  
       10 小时 51 分钟前
    dfs
    HikariLan
        45
    HikariLan  
       10 小时 46 分钟前
    DFS/BFS 、还有树啊链表啊这类的算法确实会在工作中用一些
    像是动态规划这种就基本没用过了,感觉没多少业务用这些
    flowel
        46
    flowel  
       10 小时 12 分钟前
    学算法的目的,是在你真正遇到困难的时候,可以知道有什么方法可以解决。虽然真实应用场景可能少,但是你得懂。
    hueralin
        47
    hueralin  
       9 小时 56 分钟前
    @coldle 感觉这个可以,老哥方便讲讲么
    pureGirl
        48
    pureGirl  
       9 小时 52 分钟前
    处理数据递归用的最多,二叉树链表啥的用不到
    shaozelin030405
        49
    shaozelin030405  
       9 小时 35 分钟前
    自己写 monorepo 内,包依赖关系的时候会用到图,以及入度出度。
    WorseIsBetter
        50
    WorseIsBetter  
       9 小时 31 分钟前
    @ccpp132 #42

    这让我想起来以前去支教的时候,学校在搞「趣味教学」,每个学科不定期都有以小组活动为形式锻炼思维能力的课程安排。

    有一次二年级数学课的内容是四人一组给印有 1~200 数字的卡片排序,比哪一组最快。

    最快的一组,把 200 张卡片分了 8 份,先用「简单目测」的方式给每份分别排好序,然后做四次 2-way merge ,最后做一次 4-way merge ,充分发挥了多人协作的优势,把其他小组远远甩在后面。

    这还是小朋友们在短短 15 分钟讨论时间,没有参考资料的前提下,自己思考出来的,令我不禁为之折服。可惜我当时没在现场,如果有机会很想和他们好好聊聊。
    coldle
        51
    coldle  
       9 小时 25 分钟前
    @hueralin #47
    想想 linux 文件系统权限和 chmod 就明白啦
    wallfacer5
        52
    wallfacer5  
       9 小时 21 分钟前
    前段时间用回溯法做了数据匹配。开始自己先写了一遍,后面要 AI 检查修改,比我自己写的要好
    ccpp132
        53
    ccpp132  
       9 小时 21 分钟前
    @WorseIsBetter 小学生能这么搞确实牛啊。我们当时是测试过,大家觉得分两堆比合并两堆省脑子所以就是快排不是归并了
    Georgedoe
        54
    Georgedoe  
       9 小时 20 分钟前
    大部分是数据结构方面的 , 比如 TreeMap , java 都有实现了 , 了解使用场景就够了
    AkaGhost
        55
    AkaGhost  
    OP
       3 小时 53 分钟前
    谢谢各位 受益匪浅 🥰
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1128 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 18:22 · PVG 02:22 · LAX 11:22 · JFK 14:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.