目标:包含K个元素的最小区间
从区间的左边界入手。
左边界可以取原始数据里面的任意一个点,没有哪个点具有优先级。
整个原始数据里面的最小的点可以作为第一个开始处理的左边界。
整个原始数据里面的第二小的点可以作为第二个开始处理的左边界。
整个原始数据里面的第三小的点可以作为第三个开始处理的左边界。
整个原始数据里面的第totals-k小的点可以作为第totals-k个开始处理的左边界。
本质是枚举K个元素里面最小的点,该点可以构成的最小区间。(因为点和点之间没有明显的优先级,所以需要全部枚举)
相对的可以枚举K个元素里面最大的点。
或者采用滑动窗口的算法:
目标区间的范围是 [min,max],max是所有元素的最大值,min是最小值。
在这个区间里面选取一个最小区间,能覆盖K个链表(每个链表中至少有一个元素在所选区间中)
注意题目给出的数据范围,数据规模较小可以通过保存数据间的关系来设计算法