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

2 天前
 forgottenPerson

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

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

1399 次点击
所在节点    程序员
10 条回复
easing
2 天前
并查集
coderluan
2 天前
想到本书《短码之美》,对程序员来说算是邪典了,真正的“防御性”编程。
wangritian
2 天前
一堆数字两两成对相同,找唯一独立:异或
git00ll
2 天前
```
这里有一个使用 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
2 天前
SPFA
xtreme1
2 天前
splay
nicktogo
2 天前
快排的 partition
yukino
2 天前
Cosplay 快排

quicksort [] = []
quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater)
where
lesser = filter (< p) xs
greater = filter (>= p) xs
shui14
2 天前
蒙特卡洛
几年前我被一个 SDWAN 产品上的网络拓扑卡了半个月,某天早上突发灵感,利用概率模型来延迟计算,它非常反常识
后来搓 gis 引擎时,流行混合延迟渲染自定义管线,成了常客
现在流行的 webgpu ,路径追踪和光追,来了,老弟
尽管多次重逢,永远没有第一次那样令人激动,算是自己原创,不管别人的方案是不是,但是我的自己想出来的。后面这些算是行业内的成熟方法论,但是对于我,如同一位故友,每每相逢一笑
racgas
5 分钟前
@git00ll 其实这里应该直接用 CWSet 看起来更好(更少的代码)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1108398

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX