Jessica's Reading Problem
Q : 给出一个整数序列,然后寻找一个最短序列,能包含给出的数。
例如 7 1 7 1 2 3 5 0 5 7 7 1 3 5 中 给出 了 0 , 1 , 2 , 3,5 , 7.则最短序列 7 1 2 3 5 0 然后输出 6;
拿到这个问题,没感觉是什么hash,昨晚以后,才感觉hash 很重要。
解题思路 :
-
我们的目的是学找一个序列然后使得其长度最小,最直观的思路是,调出所有可能的学列,然后去优,很不幸被时间卡掉了,但是不能抛弃这种基本思想。所以就有以下的想法。
-
从第一个数字为起始点,现寻找第一个符合要求的序列,即找到结束点,然后起始点后移,得到以此点位结束点的最优序 列。
-
在结束点后移动,以 2 中的方法得到另外一个序列,然后再比较,得到当前的最优序列。
-
以此类推,直到序列结束时,停止,输出结果。
不过用的是map,效率不怎么高。 400+ms
代码如下: