POJ 3320 hash

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 很重要。
 

    解题思路 :

  1.  我们的目的是学找一个序列然后使得其长度最小,最直观的思路是,调出所有可能的学列,然后去优,很不幸被时间卡掉了,但是不能抛弃这种基本思想。所以就有以下的想法
  2. 从第一个数字为起始点,现寻找第一个符合要求的序列,即找到结束点,然后起始点后移,得到以此点位结束点的最优序 列。
  3. 在结束点后移动,以 2 中的方法得到另外一个序列,然后再比较,得到当前的最优序列。
  4. 以此类推,直到序列结束时,停止,输出结果。

   不过用的是map,效率不怎么高。 400+ms

代码如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值