位元組跳動筆試程式設計題 使用者喜好

2022-06-21 23:21:20 字數 1105 閱讀 3483

問題:

對於一類文章,每個使用者都有不同的喜好值,我們會想知道某一段時間內註冊的使用者(標號相連的一批使用者)中,有多少使用者對這類文章喜好值為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

31 2 1

2 4 5

3 5 3

1

02

樣例解釋:

有5個使用者,喜好值為分別為1、2、3、3、5,

第一組詢問對於標號[1,2]的使用者喜好值為1的使用者的個數是1

第二組詢問對於標號[2,4]的使用者喜好值為5的使用者的個數是0

第三組詢問對於標號[3,5]的使用者喜好值為3的使用者的個數是2

**

#include#include

#include

#include

using

namespace

std;

intmain()

//輸入查詢

int q;cin >>q;

while (q--)

}return0;

}

說明:第一次寫部落格是為了記錄這次的題解,題解花了我乙個下午的時間,

最難懂的一點是,rn - ln 是什麼意思呢,這要聯絡前文**的find(k),find(k)是為了找到興趣是k的所有下標陣列,然後找到max和min的下標,相減即是個數

《位元組跳動》筆試第二題

題目 輸入 第一行輸入乙個數n,表示下邊有幾行。接下來輸入n行,每一行格式為1,2 3,4 5,6.輸出 將重疊部分進行合併的結果,按從小到大輸出。例如 python實現 import sys if name main n input q for i in range n line sys.stdi...

位元組跳動筆試題

要求 輸入陣列長度,然後輸入陣列中的各個元素,最後輸入整數k,要求找出陣列中三個元素小於k的三個元素,例如 輸入陣列長度 6 輸入陣列元素 2 0 1 2 3 6 輸出三元組 共4個 下面給出思路和 思路 1 獲得使用者輸入的陣列長度n,若n不為整數,則提示錯誤。2 建立陣列。3 獲得使用者輸入的陣...

位元組跳動筆試面試經歷

一面是一位和藹的中年程式設計師。1.高階函式 一步一步引導我說出思路!最後面試結束後我查了乙個是乙個js術語。面試官對我說 因為你們學校學習和工作之間是有差距的,所以不會直接問你知識,我會給你一些線索看看你的思路 這個問題大概答出了大半題,大概是這樣。2.筆試經歷 讓我驚訝的是面試官還願意聽聽我筆試...