这是在项目中遇到的一个问题,觉得有趣就分享出来。看问题描述:
现在有两个数据来源,一个是节目的结构体列表数据(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