題目描述:
為了不斷優化推薦效果,今日頭條每天要存儲和處理海量數據。假設有這樣一種場景:我們對用戶按照它們的注冊時間先后來標號,對於一類文章,每個用戶都有不同的喜好值,我們會想知道某一段時間內注冊的用戶(標號相連的一批用戶)中,有多少用戶對這類文章喜好值為k。因為一些特殊的原因,不會出現一個查詢的用戶區間完全覆蓋另一個查詢的用戶區間(不存在L1<=L2<=R2<=R1)。
輸入描述:
輸入:
第1行為n代表用戶的個數 第2行為n個整數,第i個代表用戶標號為i的用戶對某類文章的喜好度 第3行為一個正整數q代表查詢的組數 第4行到第(3+q)行,每行包含3個整數l,r,k代表一組查詢,即標號為l<=i<=r的用戶中對這類文章喜好值為k的用戶的個數。 數據范圍n <= 300000,q<=300000 k是整型
輸出描述:
輸出:
一共q行,每行一個整數代表喜好值為k的用戶的個數
示例1
輸入:
5
1 2 3 3 5
3
1 2 1
2 4 5
3 5 3
輸出:
1
0
2
樣例解釋:
有5個用戶,喜好值為分別為1、2、3、3、5,
第一組詢問對於標號[1,2]的用戶喜好值為1的用戶的個數是1
第二組詢問對於標號[2,4]的用戶喜好值為5的用戶的個數是0
第三組詢問對於標號[3,5]的用戶喜好值為3的用戶的個數是2
題目描述
作為一個手串藝人,有金主向你訂購了一條包含n個雜色串珠的手串——每個串珠要么無色,要么塗了若干種顏色。為了使手串的色彩看起來不那么單調,金主要求,手串上的任意一種顏色(不包含無色),在任意連續的m個串珠里至多出現一次(注意這里手串是一個環形)。手串上的顏色一共有c種。現在按順時針序告訴你n個串珠的手串上,每個串珠用所包含的顏色分別有哪些。請你判斷該手串上有多少種顏色不符合要求。即詢問有多少種顏色在任意連續m個串珠中出現了至少兩次。
輸入描述:
第一行輸入n,m,c三個數,用空格隔開。(1 <= n <= 10000, 1 <= m <= 1000, 1 <= c <= 50) 接下來n行每行的第一個數num_i(0 <= num_i <= c)表示第i顆珠子有多少種顏色。接下來依次讀入num_i個數字,每個數字x表示第i顆柱子上包含第x種顏色(1 <= x <= c)
輸出描述:
一個非負整數,表示該手鏈上有多少種顏色不符需求。
示例1
輸入:
5 2 3
3 1 2 3
0
2 2 3
1 2
1 3
輸出:
2
說明
第一種顏色出現在第1顆串珠,與規則無沖突。
第二種顏色分別出現在第 1,3,4顆串珠,第3顆與第4顆串珠相鄰,所以不合要求。
第三種顏色分別出現在第1,3,5顆串珠,第5顆串珠的下一個是第1顆,所以不合要求。
總計有2種顏色的分布是有問題的。
這里第2顆串珠是透明的。
[附加題【編碼題】
字母交換
時間限制:1秒
空間限制:32768K
題目描述
【編碼題】字符串S由小寫字母構成,長度為n。定義一種操作,每次都可以挑選字符串中任意的兩個相鄰字母進行交換。詢問在至多交換m次之后,字符串中最多有多少個連續的位置上的字母相同?
輸入描述:
第一行為一個字符串S與一個非負整數m。(1 <= |S| <= 1000, 1 <= m <= 1000000)
輸出描述:
一個非負整數,表示操作之后,連續最長的相同字母數量。
示例1
輸入
abcbaa 2
輸出
2
說明:
使2個字母a連續出現,至少需要3次操作。即把第1個位置上的a移動到第4個位置。
所以在至多操作2次的情況下,最多只能使2個b或2個a連續出現。
【設計題】
今日頭條會根據用戶的瀏覽行為、內容偏好等信息,為每個用戶抽象出一個標簽化的用戶畫像,用於內容推薦。用戶畫像的存儲、高並發訪問,是推薦系統的重要環節之一。現在請你給出一個用戶畫像存儲、訪問方案,設計的時候請考慮一下幾個方面:
用戶畫像如何存儲
如何保證在線高並發、低延遲地訪問
機器宕機、負載均衡問題
如果用戶增長很快,在你的方案下,該如何做擴容