问题描述
一个序列为不无聊序列,则必须满足划分任意长度的连续子序列(包括其本身),其中至少存在一个元素仅仅出现一次,即至少有一个元素不重复。
例子:
123321 ——无聊序列,子序列33中没有独特元素。
12321 ——不无聊序列,任意子序列都有独特元素。
分析
分治方法适用条件:
- 问题规模缩小到一定程度很容易求解。
- 问题可以分解为若干规模较小的相同问题,具有最优子结构性质。
- 基于子问题的解可以合并为原问题的解。
- 分解出的各个子问题是相互独立的。
分析该题,可以发现就是寻找序列中独特元素,满足分治法的适用条件。故可以采用分治法进行求解。
求解步骤
- 利用两个额外数组 p r e p o s [ ] 、 n e x t p o s [ ] prepos[]、nextpos[] prepos[]、next