广告与内容排序合并算法

广告插入算法

这是在项目中遇到的一个问题,觉得有趣就分享出来。看问题描述:

现在有两个数据来源,一个是节目的结构体列表数据(10个每页),一个是广告的结构体列表数据。

节目结构体列表按照用户的偏移值index=0、10、20、30……来获取数据。

广告可以插入到节目列表的任何指定位置,例如position=2、4、8、12、14、18、22、24、28、32。

要求:客户端上来获取内容时,带上广告。内容数据和广告数据不能缺少丢失展示,广告的位置不可错乱。

----------------------------------------------------------------------------------------------------

这里有个坑,假如客户端上来获取index=0页面,把广告的2、4、8插进节目列表指定位置。然后就会发现,10个节目+3个广告=13个展示位,那么第12个广告已经无法展示出来。所以第一页不仅仅会返回2、4、8广告。

----------------------------------------------------------------------------------------------------

为了减少客户端每次上来需要动态计算位置的量,加快速度,我们可以提前算好每页的广告位置。

例如,广告位2、4、8、12、14、18、22、24、28、32为广告位播客,然后当客户端的分页请求来到,第一页、第二页、第三页分别获取的广告位是哪些?这些广告位在当前页的相对位置又是多少?编程实现吧,骚年!

 

答案:

第一页2、4、8、12、14,相对位置2、4、8、12、14

第二页18、22、24、28,相对位置3、7、9、13

第三页32,相对位置3

 

原创博客,转帖请注明原出处:http://my.oschina.net/u/223522/blog/726735

转载于:https://my.oschina.net/u/223522/blog/726735

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值