【編程題】【2019字節跳動技術類筆試】

一、並查集

題目:豆油瓶是直系和間接朋友組成的羣體,也可以自成一個豆油瓶,輸入用戶之間的互動次數矩陣,大於等於3即爲是朋友,求豆油瓶的個數

思路:初始化每個用戶的父節點爲自己,nn遍歷每個用戶對ab,如果是朋友且父節點不同,則把a的最上父節點的父節點更新爲b的最上父節點,使他們擁有相同的最上父節點;構造結束後,遍歷每個用戶,若用戶的最上父節點是自己,則朋友圈數加一;

leetcode547

並查集其他題目:684 685

二、dp或卡特蘭數

題目:花園入口劃分

思路:leetcode96 

ATTENTION:若採用卡特蘭數需要注意,n爲奇數時輸出0,n爲偶數才輸出卡特蘭數(我個蠢貨忘了判斷這個。。搞了50%)

C = 1
for i in range(n/2):
    C = C * 2 * (2 * i + 1) / (i + 2) 
print(C)

三、模擬題

題目:模擬2048,用戶有動作1234代表上下左右,給出4X4的矩陣,模擬用戶動作後的矩陣

思路:對於左操作,遍歷矩陣每一行,每一行使用棧進行處理,非0元素不入棧,若當前元素與棧頂元素相同則pop後入棧當前元素的二倍,然後在棧後補0維持4的長度,處理後放入新矩陣。右操作同理。上下操作只需先將矩陣轉置處理後再次轉置即可。

eg: 左移0228 -> 棧48 -> 棧4800

ATTENTION:

1) 0224左移用上述方法會變爲8000而實際答案爲4400,處理方法:加標誌位,若棧頂元素是處理後的,下一位直接入棧;

2) 2804左移用上述方法會變爲2840而實際答案爲2804,處理方法:對於空stack的非0元素不入棧;

Note:轉置代碼:

mp = list(map(list,zip(*mp)))

四、並查集

枚舉素公共因子然後並查集並一下

質數取數組再用並查集

 

 

本文來自程序媛驛站,未經授權不得轉載.

如有需要請公衆號後臺聯繫

(歡迎轉發到朋友圈~)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章