题目大意:给定 N 个数字组成的序列,求刚好拥有所有 M 种数字的最短区间. 题解:双指针算法是一种对于暴力的优化算法,对于这道题来说,一个显然的暴力是:对于序列中每一个位置 pos,计算出这个位置右边恰好满足条件的位置 f[pos],时间复杂度为 \(O(n^2)\).考虑对于每一个位置的计算位置,计算位置的值单调不降,因此,这就没有必要重复计算一些位置,直接扫描一遍即可统计出答案.因此,采用双指针扫描即可. 双指针算法的步骤如下: 未满足条件,则右端点不断向右扩展. 若仍不满足条件,则退出循…