bingdong700
2016-08-19 00:52:01 +08:00
重新整理一遍:
假定现有 100 台布置在不同地点显示器,每个显示器上有 8 个不全相同的广告位(不同级别,不同大小。同级别也有可能大小不一样,暂时只考虑级别),不同广告位有不同空闲时间段可投放广告。一个订单在同一时间段对应多个广告位,每个广告位对应多个不同时间段的订单,因为起始结束时间不一样,这样就存在空档期。现在有客户下单投放广告,需要搜索出来在指定的时间段内的有空档广告位,要怎么做才能减少广告位的空闲浪费呢?
我目前的想法,把这 100 台显示器的 8 个广告位理解成 800 个独立广告位,每个广告位会对应若干条不同时间段的订单,分别记录不同的起始结束时间。用户在搜索的时候,后台就需要遍历这 800 个广告位,然后将客户指定的时间段来对比历史订单(后面待执行)的时间段,若没有重叠时间则为可用广告位。
以上想法在目前可能应付得过来,可是后期,会有 1000 甚至更多台显示器,而且,若屏幕允许左右滑动,一个显示器就有可能有 16 或者 24 个广告位。广告多了还会考虑将每个广告位做成轮播图片形式,也就是多个订单可选这个广告位。但为了保证广告展示时间会限制轮播循环图片不超过五张。这样计算出一个有效广告位,还需要对比历史订单,同时间段内重叠不超过五次。至于根据重叠时间长短来取舍是后话了。 1000 台显示器、 24 个广告位、重叠不超过 5 次,应该还有更好的算法,求指教。