今日頭條筆試題 之 尋找抖音紅人

2021-08-27 16:09:09 字數 814 閱讀 7321

題目:

抖音有n個使用者,有m個關注對(a, b),表示a關注了b。使用者的關注具有傳遞性:假設a關注了b,b關注了c,則認為a間接關注了c。如果乙個使用者被所有其他使用者關注,則認為這個使用者是乙個抖音紅人。要求:輸入n、m的值以及m個關注對,找出一共有多少個抖音紅人。

例:

輸入:

1 2 2 1 2 3

輸出:

解釋:3被2直接關注,被1間接關注。

題目分析:

可以採用乙個n*n的矩陣來記錄各個使用者被其他使用者關注的情況。每讀入乙個關注對(a, b),除了讓a關注b,讓關注a的也關注b,讓關注關注a的也關注b...這個過程可以採用遞迴實現。

**實現:

#include #include using namespace std;

int n;

int m;

vector> guanzhu;

// a關注了b,讓關注a的也關注b

void update(int a, int b) }}

void main()

int a, b;

for (int i = 0; i < m; i++)

// 數總共幾個紅人

int cnt = 0;

for (int i = 0; i < n; i++)

}if (gz)

cnt++;

} cout << cnt << endl;

}

頭條《抖音紅人》筆試題

題目如下 先挖個坑,稍後來寫解題思路。來填坑了 本題採用二維陣列a i j 下表代表使用者i關注了j,陣列的值為1代表該關注關係成立,且a i i 1永遠成立,然後統計被關注的總數,若為n,即是網紅。如下 include using namespace std int main cnt 0,sum ...

2017 08 22 今日頭條筆試題

有乙個值得分享的地方,是x排序之後對應y的問題 我用了乙個很大的陣列,以x為索引,y為陣列值,不需要用到map。其實也是因為我懶不想去學map操作了,下次試試用map。include include include using namespace std int main cin n x.clear...

今日頭條筆試題(一)

一列火車有n個車廂標記為1,2,3,4,5,6 n 現在因為某些原因,需要調整車廂的相對順序 例如需要將車廂順序調整為2,3,1,4,5,6 n 由於車廂龐大,且車廂只能停留在鐵軌上,所以不能隨心所欲的調整相對順序 現在只能利用兩條並行的鐵軌對車廂的順序進行調整 例如原序列為1,2的車廂 車廂1進入...