实际上,这与SQL无关,我怀疑"conversation pattern"也不是正确的名称,但我想不出更好的标题。
简化一下,想象一下你得到了一个巨大的整数流。 任务是检测 A.{1;max_n}A
模式:如果一个整数后面跟着 n (> 0) 其他整数,然后再次出现原始整数,则该整数满足模式,其中 n <= max_n。
例如:
...
1
4 <--
7 \
3 > n = 3
3 /
4 <--
2
...
这里,int型的4
与3个任意的int型值交替出现,所以对于max_n <= 3,该模式适用于值4
。
问题是,我如何检测在大量数据中哪些整数符合此模式?我主要关心算法本身,但SQL或C#示例也可以。
我想到的天真想法是首先收集所有不同整数的列表,然后对它们中的每一个以一种直接的方式检查模式,但这将导致性能瓶颈。