這是在項目中遇到的一個問題,以爲有趣就分享出來。看問題描述:編程
如今有兩個數據來源,一個是節目的結構體列表數據(10個每頁),一個是廣告的結構體列表數據。.net
節目結構體列表按照用戶的偏移值index=0、十、20、30……來獲取數據。blog
廣告能夠插入到節目列表的任何指定位置,例如position=二、四、八、十二、1四、1八、2二、2四、2八、32。博客
要求:客戶端上來獲取內容時,帶上廣告。內容數據和廣告數據不能缺乏丟失展現,廣告的位置不可錯亂。it
----------------------------------------------------------------------------------------------------io
這裏有個坑,假如客戶端上來獲取index=0頁面,把廣告的二、四、8插進節目列表指定位置。而後就會發現,10個節目+3個廣告=13個展現位,那麼第12個廣告已經沒法展現出來。因此第一頁不單單會返回二、四、8廣告。分頁
----------------------------------------------------------------------------------------------------請求
爲了減小客戶端每次上來須要動態計算位置的量,加快速度,咱們能夠提早算好每頁的廣告位置。數據
例如,廣告位二、四、八、十二、1四、1八、2二、2四、2八、32爲廣告位播客,而後當客戶端的分頁請求來到,第一頁、第二頁、第三頁分別獲取的廣告位是哪些?這些廣告位在當前頁的相對位置又是多少?編程實現吧,騷年!客戶端
答案:
第一頁二、四、八、十二、14,相對位置二、四、八、十二、14
第二頁1八、2二、2四、28,相對位置三、七、九、13
第三頁32,相對位置3
原創博客,轉帖請註明原出處:http://my.oschina.net/u/223522/blog/726735