网易笔试(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