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

你遇见过的最 simple 或者最有意思的算法和数据结构

  •  
  •   forgottenPerson · 28 天前 via Android · 2184 次点击

    simple 指的不一定是代码量越少越好

    最有意思指的是给你一种恍然大悟这也能行的感觉以及你感受到的美,美包括奇妙的思路以及时间以及空间复杂度达到你认为的 trade-off,或者有很高的实用价值以及你觉得有趣的。

    11 条回复    2025-02-04 02:24:31 +08:00
    easing
        1
    easing  
       28 天前 via iPhone   ❤️ 2
    并查集
    coderluan
        2
    coderluan  
       28 天前
    想到本书《短码之美》,对程序员来说算是邪典了,真正的“防御性”编程。
    wangritian
        3
    wangritian  
       28 天前
    一堆数字两两成对相同,找唯一独立:异或
    git00ll
        4
    git00ll  
       28 天前   ❤️ 1
    ```
    这里有一个使用 map 做去重的,我觉得比较巧妙
    datas.stream().filter(distinctByKey(s -> s.getRequestNo())).forEach(v -> {
    doSomeThing(v);
    });

    static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
    Map<Object, Boolean> seen = new ConcurrentHashMap<>();
    return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
    }

    ```
    r6cb
        5
    r6cb  
       28 天前
    SPFA
    xtreme1
        6
    xtreme1  
       28 天前
    splay
    nicktogo
        7
    nicktogo  
       28 天前 via iPhone
    快排的 partition
    yukino
        8
    yukino  
       28 天前
    Cosplay 快排

    quicksort [] = []
    quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater)
    where
    lesser = filter (< p) xs
    greater = filter (>= p) xs
    shui14
        9
    shui14  
       27 天前   ❤️ 4
    蒙特卡洛
    几年前我被一个 SDWAN 产品上的网络拓扑卡了半个月,某天早上突发灵感,利用概率模型来延迟计算,它非常反常识
    后来搓 gis 引擎时,流行混合延迟渲染自定义管线,成了常客
    现在流行的 webgpu ,路径追踪和光追,来了,老弟
    尽管多次重逢,永远没有第一次那样令人激动,算是自己原创,不管别人的方案是不是,但是我的自己想出来的。后面这些算是行业内的成熟方法论,但是对于我,如同一位故友,每每相逢一笑
    racgas
        10
    racgas  
       25 天前
    @git00ll 其实这里应该直接用 CWSet 看起来更好(更少的代码)
    uni
        11
    uni  
       24 天前
    睡眠排序,有种用到了外星科技的感觉
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2679 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 12:03 · PVG 20:03 · LAX 04:03 · JFK 07:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.