微信公众号:振振有CI
振振有辞ci,分享AI、BI中的一些技术心得。
间或来点小诗词附庸风雅!
欢迎大家关注。
高性能解决有序集合的连续匹配问题
场景:
A集合有8个元素:ali、boy、c、dog、e、f、g、h,
B集合有5个元素:boy、c、dog、e、h
问B中是否包含连续4个以上的A集合元素?是即符合要求。
查阅网络资料甚至咨询论坛、技术群里的朋友,尽管方法各异,本质上还是循环遍历,最多考虑了利用bitmap提升下循环匹配性能。
难点:连续4个以上的计算与匹配
不论是集合还是字符串,4个连续的判断与匹配基本都依赖循环遍历算法,不论是KMP还是Boyer-Moore算法,如果一行记录都需要这么复杂的循环才能得出,那对千万级甚至亿级的数据时的性能?
绝对原创的独特解法
《SQL沉思录》一书明确指出,循环是过程化的思维方式,数据集是集合思维方式,就不用能集合思维也就是sql的方式高效解决问题?
但没有现成轮子的时候,那只有自己发明轮子。
连续4个,试试分区函数的滑动分窗?当原、现尺码都高效拆分出连续4个后,匹配就是一个简单的join关联问题。
思路:
1、滑动分窗求出连续4个元素
2、两表关联,能关联到即为合格
实现代码
1、构造2张测试表
2、构造连续4个元素集合
3、匹配
下面的是我的公众号二维码图片,欢迎加我,一起学习,一起交流。
继续阅读与本文标签相同的文章
上一篇 :
Java软件工程师面试常见问题集锦之一
下一篇 :
猴子分香蕉
-
SQL 中 Left Join 转为 Inner Join 的实际应用
2026-05-19栏目: 教程
-
82天突破1000star,项目团队梳理出软件开源必须注意的8个方面
2026-05-19栏目: 教程
-
是真“开发者”,就来一“测”到底!
2026-05-19栏目: 教程
-
山西晋城携手阿里构建城市云平台,66个政务系统已上云
2026-05-19栏目: 教程
-
阿里云物联网平台设备升级OTA演示
2026-05-19栏目: 教程
