2023网易雷火Web后端开发实习笔试
题型:10道单选(10*3),5道多选(5*4'),2道简答(2*5'),2道编程题(2*20')。
单选题
印象比较深的有逻辑推理题、Linux命令、OSI/TCP网络模型中的协议、MySQL锁、图的最短路径、二叉树的性质
扑克牌花色大小和谜语人
Linux系统中查看磁盘信息的命令是什么?df
以下哪些协议不是OSI模型中的最高层协议?ICMP
MySQL中InnoDB中哪两个锁是可以兼容的?
一个完全二叉树中有124个叶子节点,则这个树有多少个节点?247
在图中A到G的最短路径是多少?12
多选题
二叉树的中序和先序遍历、
出栈进栈、
Docker的使用
简答题
分布式系统中的负载均衡
概念、算法、优缺点、应用场景
分布式数据库的分片
概念、算法、优缺点
编程题
一道排序题、一道DFS
小明有n个宝石和k个包裹,每个宝石的价格为price[i],每个包裹的价值是price[i]+price[j],要求从i到j中的所有宝石都在该包裹内,求k个包裹所放宝石的最大价格和最小价格之差。
int putGems(vector<int>& price, int k) {
int n = price.size();
vector<int> pairPrices(n-1, 0);
int res = 0;
for (int i = 0; i < n-1; ++i) {
pairPrices[i] = price[i] + price[i+1];
}
std::sort(pairPrices.begin(), pairPrices.end());
for (int i = 0; i < k-1; ++i) {
res += pairPrices[n - 2 - i] - pairPrices[i];
}
return res;
}
给一个地图map,小明的位置(a_x, a_y),小红的位置(b_x, b_y),求小明和小红的双向奔赴的最短时间。
int dis;
int getEstTime(vector<vector<int>>& map, int a_x, int a_y, int b_x, int b_y) {
dis = INT32_MAX;
vector<vector<bool>> visited(map.size(), vector<bool>(map[0].size(), false));
dfs(map, a_x, a_y, b_x, b_y, 0, visited);
if (dis == INT32_MAX){
return -1;
}
return dis/2;
}
void dfs(vector<vector<int> >& map, int a_x, int a_y, int b_x, int b_y, int path, vector<vector<bool>>& visited){
if (a_x == b_x && a_y == b_y){
dis = min(dis, path);
return ;
}
if (a_x < 0||a_x >=map.size()||a_y<0 || a_y >= map[0].size() || visited[a_x][a_y]){
return ;
}
if (map[a_x][a_y] == 0){
visited[a_x][a_y] = true;
return ;
}
vector<pair<int,int>> dirs = {{0,1}, {1,0}
,{0,-1}, {-1,0}};
visited[a_x][a_y] = true;
for (int i = 0; i < 4; ++i) {
dfs(map, a_x+dirs[i].first, a_y+dirs[i].second, b_x, b_y, path+1, visited);
}
}
#网易雷火##实习 Java#Java实习日志 文章被收录于专栏
复盘找实习的磕磕碰碰。找不找得到暂且不论,为的就是这块技术!
查看10道真题和解析