網易筆試(2小時):
4.7
選擇題 10道
關於sql查詢,計算機網絡域名範圍,
高度爲H, 節點個數爲n, n >> h, 的排序二叉樹,刪除一個節點的複雜度(找到中序遍歷的後繼,連上去)
其餘忘記
編程題 4道
- n個城市 n<= 100000, m個操作,開始兩兩城市都連同,m次操作,每次op(x,y) 若x==0, 表示y封城,否則表示切斷x與y的聯繫,問最早第幾次操作後,城市s就處於封城狀態
分析後覺得for一遍,維護s的度數即可。但是隻得了10分。感覺和二分答案+並查集像,但覺得按照題意就是for一遍…
- n個人,m次聚會,每次p個人出席。f號有病毒。聚會的人有病毒都會傳染。爲最後幾個人傳染。
並查集
- n位整數,進行分割,使得每個子串都能被m整除,求分割方案。 答案對
1E9+7
取模。
數據範圍沒給,考官也不回,應該是個dp
- 最大20 * 20地圖,有K個特殊點。特殊點爲B代表障礙。爲
l
代表有激光器向左發射激光,r
,u
,d
同理。激光沿直線前進,遇到其他特殊點停止。問從起點到終點所有路線中,被激光覆蓋的點最少的路徑覆蓋了幾個。(相鄰的兩個點如果都被激光覆蓋則不能走)
寫了一發帶標記剪枝的dfs, 所有測試點均TLE…
問答題 2道
- stl::map和stl::unordered_map底層實現的區別,插入,查詢元素的複雜度
紅黑樹,哈希表,logn, logn O1 O1 - (1)給一個50G的節點,每行一個32位整數,找出最大的1000個要僞代碼
(2)節點爲2G, 如何優化
基數排序
(3)節點爲100T,提供了額外200個節點,又該如何優化
不知
阿里筆試(1小時)
編程題2道
- 01串,長度不超過20,翻轉,每次相鄰的三個可以0變1,1變0, 問能否翻轉爲全0串。能的話最少翻幾次。
貪心即可
- 打怪獸,1E5個怪獸,1E5支箭,每個箭有各自的傷害值和花費。 問把所有怪獸都消滅的最小花費。
貪心應該可以
百度筆試(2小時)
選擇題20道
數據結構,計網,操作系統,Linux命令,數據庫都考。
給定進棧順序,出棧順序不可能爲
給定中序遍歷,後序不可能爲
n個數先放到滿二叉樹中,再調整爲堆,中序遍歷可能爲
記不清了
編程題3道
- 給定n,(n<=1000,000), 找一個數對(x,y),滿足lcm(x,y) - gcd(x,y)最大,輸出這個最大值
輸出lcm(n,n-1) - gcd(n,n-1)即可
- 博弈論,n堆石子,n<=100,000, 每堆個數 <=1E9, 兩人輪流取。若沒有石子可取或者取完以後出現了兩堆石子個數相同,則輸。問先手必勝還是必敗
分類討論一下,可以每次都取最少的那堆,直到取完或者比更少的那堆大1,最後一定得到一個等差數列
- 有一個上下高度爲h的銀河區域,區域上下都有引力,區域中有K(1000000)個行星,也有引力。問橫穿過去這個區域,離所有行星以及區域上下的最小距離的最大值。
應該是個二分答案。每次二分最小距離R,然後以每個行星爲原點,半徑爲R畫圓,若有路可走,則這個距離可以,check® = true