2020 09 06騰訊筆試

2021-10-24 10:06:08 字數 3255 閱讀 3614

上次沒有參加,以為可以避免參加,這次是回學校以後參加的,果然自己蠢得不行,寫題目都沒有思路,於是被自己的智商吊打,不過事情已經過了,只能抱著每一次挫折都是前進的衝鋒號來鼓勵自己了,然後參照他人的題解,將題目做乙個覆盤吧!

題目:

降序排列的鍊錶,求出當前鍊錶的公共部分

66 5 4 3 2 1

56 5 3 2 1

題目很清晰了,只是用鍊錶來混淆視聽實質就是求兩個的公共數字。

public

class

main

int m = scanner.

nextint()

;for

(int i =

0; i < m; i++)}

for(integer re : res)

}}

題目:

通知傳遞,n個人(序號0~n),m個小組,每個小組有k個人,1個人也能在不同的小組。由0發起的乙個通知,每個人都能把通知告訴自己同組的人,求最後收到通知的人數。

50 5

2 1 2

5 10 11 12 13 14

2 0 1

2 49 2

4 6 7 8 2

最後結果7 => 0 1 2 6 7 8 49

這是道並查集問題,以為會有通用的解法,實質上還是使用暴力解法。利用乙個hashmap將所有人關聯到的物件放入到乙個set中,然後最後將0中的元素遍歷,利用set儲存即可

public

class

solution

// 建立乙個圖,即獲取當前元素的乙個set集合

for(integer integer : set)

// 如果當前已經有的話再新增一次

set1.

addall

(set)

; map.

put(integer, set1);}

} system.out.

println

(map)

;// 現在需要遍歷所有的然後加入即可

queue

queue =

newlinkedlist

<

>

(map.

get(0)

);// 使用乙個set來儲存結果

setresult =

newhashset

<

>()

;while

(!queue.

isempty()

)}} system.out.

println

(result)

; system.out.

println

(result.

size()

);}}

題目:

輸入n個字串(有重複),輸出這n個字串**現次數最多的前k個及出現次數最少的前k個和他們的出現的次數,注意出現次數一樣的時候都要進行字典排序

這裡主要是乙個重排序的問題,因為要求最多,和最少,此時需要進行兩次排序即可,第一遍排序取出最多的,第二遍排序取出最小的k個即可。

這裡注意,在比較器中,基本預設的排序都是從小到大排,即在比較器中的邏輯就是 i1 > i2 返回正數。如果想要從大到小就要顛覆這個即i1 > i2 返回負數,反之亦然。同時這裡由於涉及到字典序的問題,即如果數字出現次數相同,按照字典序排。

public

class

main

list

list =

newarraylist

<

>()

;for

(string s : map.

keyset()

)// 重寫比較器

list.

sort

((o1, o2)

->);

// 輸出後k個

for(

int i =

0; i < k; i++

) list.

sort

((o1, o2)

->);

for(

int i =

0; i < k; i++)}

}class

word

}

題目:

給定乙個偶數的陣列,求去掉下表為i的數字的時候,整個陣列的中位數是多少,注意是無序的。

思路:剛開始是想的利用list來,每次移除,然後排序,然後輸出中位數,無奈時間複雜度過高。後面參考別人的寫法,發現其實去掉下標i,中位數其實就是在中間的兩個數之間擺動,占用了前面的位置,則輸出後面的為中位數,占用了後面的則輸出前面的為中位數。

public

class

solution

if(n ==2)

// 拷貝乙份陣列

int[

] t = arrays.

copyof

(a, n)

; arrays.

sort

(t);

int l = t[n /2-

1];int r = t[n /2]

;// 這一步處理的很妙,因為中位數無非就是兩個,只有輪到兩個被刪除的時候

// 此時中位數才會被替換為對方,所以只需要判斷當前值是否小於前乙個中位數

// 如果是的話,當前數在前面,則後面多乙個位置,則中位數輸出後面的

// 如果當前的數不小於前乙個中位數,表示當前數字在後面,則前面多出乙個位置,輸出前面的

for(

int i =

0; i < n; i++

)else}}

}

這道題不會,題目大致意思也理解,不會

keep thinking, keep coding!

繼續保持加油吧,每一天都會有乙個新的起點,每一天充滿期待,生活就會變得多彩!

騰訊筆試記

這是乙個千載難逢的機會,這是乙個程式愛好者之間的擂台,這是一次千里挑一的冒險,這是乙個走向地獄與天堂的路口,這是一場充滿著變數的遊戲,歸根結底,這是一次筆試 筆試嘛,考的是什麼?是知識,是細心,是心理素質。從今天凌晨2點27分收到筆試的簡訊通知,心裡著實開始緊張了,我的心裡素質一向不太發達,尤其是面...

騰訊筆試總結

1 二叉樹遍歷例如 先序 中序 後序 2元件可靠性 3記憶體分配 最佳,最差,迴圈等 4命令 chown chmod 5那種方案是安全的。作業系統。程序,可用資源數,最大分配,已經分配 6測試用例 7最短路徑 8位址轉換 9sizeof 10雜湊函式,雜湊函式,衝突探測 11risc 12有限自動機...

騰訊筆試題

一.單選題 每題4 分,15題,共60分 1.考慮函式原型void hello int a,int b 7,char pszc 下面的函式呼叫鐘,屬於不合法呼叫的是 a hello 5 b.hello 5,8 c.hello 6,d.hello 0,0,2.下面有關過載函式的說法中正確的是 a.過載...