位元組跳動面試題 尋找抖音紅人

2021-09-29 18:47:01 字數 1272 閱讀 1025

n個人之間存在m個關係對,關係具有傳遞性,假如a關注b,b關注c,那麼a就間接關注了c。如果乙個人被除他之外的所有人都直接或間接關注,那麼這個人就是抖音紅人,求抖音紅人的總數。

將使用者之間的關注關係使用乙個字典表示,key為被關注的使用者,value為關注此使用者的使用者,遍歷每個key的value中的使用者,補充間接關注關係,最後判斷哪個使用者的len(value)為使用者總數,則該使用者為抖音紅人。

# -*- coding:utf-8 -*-

import collections

def split_guanxi(gx_list, num):

gx_dict = collections.defaultdict(set) # key表示使用者,value為list,表示誰關注了他

for i, x in enumerate(gx_list):

if i % 2 != 0: # 奇數表示拿到的是關注的物件 奇數前面的偶數表示關注此物件的人

# 把自己加入進來

gx_dict[x].add(x)

gx_dict[x].add(gx_list[i-1])

# 需要多次檢測,因為有間接的關注關係,乙個使用者最多依次被num個使用者關注(包括自己),因此迴圈num次

for i in range(int(num)):

for star, user in gx_dict.iteritems(): # star 表示被關注的人, user表示關注者

add_people = set()

for x in user:

if x in gx_dict:

add_people |= gx_dict[x]

gx_dict[star] |= add_people

star_num = 0

for star, user in gx_dict.iteritems():

if len(user) == int(num):

star_num += 1

return star_num

if __name__ == "__main__":

n = raw_input()

m = raw_input()

guan_xi = raw_input().split(' ')

print split_guanxi(guan_xi, n)

位元組跳動技術美術面試(抖音)

龍與地下城 dp 兩個陣列合併去重 渲染管線 頂點著色器作用,包括什麼工作,mvp矩陣空間變換過程 m矩陣中旋轉 平移 縮放順序,分別在m矩陣的哪個部分,如何從m矩陣拆分獲得三個變換矩陣,拆分順序 頂點著色器到片元著色器中間流程 幾何著色器的作用,頂點著色器傳輸給幾何著色器什麼資料 在dcc軟體中,...

頭條《抖音紅人》筆試題

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

位元組跳動面試題

位元組跳動面試題 http協議 http協議是乙個應用層的協議,由請求和響應構成,使用統一資源識別符號來傳遞資料和建立連線 一次http請求的基本流程一般是,在建立tcp連線後,由客戶端向服務端發起一次請求 request 而伺服器在接收到以後返回給客戶端乙個響應 response 所以我們看到的h...