Skip to content

Commit

Permalink
2020 届秋招笔试面试经验合集
Browse files Browse the repository at this point in the history
  • Loading branch information
Shiny-Man committed Sep 19, 2019
1 parent bcd5c1c commit 6778199
Show file tree
Hide file tree
Showing 3 changed files with 98 additions and 0 deletions.
33 changes: 33 additions & 0 deletions 2020秋招面经/大华面经.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,36 @@
**【浙江大华提前批 hr 面】**

- 时隔一月收到感谢信


**【浙江大华正式批一面:客户端开发工程师】**

- 自我介绍
- 讲一下在校期间做的项目,Web 服务器,等等
- 项目中开启几个线程,我说 4 个,为什么开启四个,我从 CPU 核数方面讲的
- 项目中开启一个线程和四个线程,具体服务性能有什么提升,emmmm 我回答 webbench 测定服务的吞吐 & 并发量
- 看你项目中使用了线程池,讲一下线程池,我是这么说的,所谓线程池就是用数组保存一组线程,如果没有任务处
理就用条件变量,让其休眠,等到有任务来临的时候就去唤醒任务队列中的线程,还说了使用线程池的优点
- 你项目中哪个地方使用到了异步,我说的是异步日志,使用的好处是什么
- 你项目中线程具体是怎么设计的,我回答一个 master 线程搭配四个 worker 线程
- 在项目中你遇到了什么困难,我说了 coredump 的解决方案,和任务队列工作线程的优先级设定
- 用过 STL 没,讲一下 vector、list、map
- 什么是平衡二叉树
- 一个场景题(面试官写了一个模块)其目的是问深拷贝
- 操作系统了解不,说一些分页内存
- 手撕单例模式(要求写懒汉)
- go to 语句是什么,如何解决 go to 使用语句出现的问题,我只说了我了解的,然后面试官给我讲了一下底层,面试官说常见的 for、while 循环
普遍都是限制了一个代码块,而 go to 有可能跳转整个代码模块,说了程序在内存的载入换出什么什么的【让等二面】

**【浙江大华正式批二面】**

- 聊人生
- 说一下学校中的事情(我说了数学建模比赛和社会实践团)
- 数据库知道多少说多少
- 你这项目这用到了 select、epoll,讲一下底层【至此二面结束,让我等 HR】

**【浙江大华 HR 面】**

- 谈一下薪资,说一下工作地点
- 为什么做客户端,你的优势在哪里
- 你有什么要问我的
36 changes: 36 additions & 0 deletions doc/coding/main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#include <bits/stdc++.h>

using namespace std;

int main()
{
int N;
int target;
while (cin >> N) {
vector<int> nums(N, 0);
for (int i = 0; i < N; i++) {
cin >> nums[i];
}
cin >> target;
vector<vector<int>> ans;
sort(nums.begin(), nums.end());
for (size_t i = 0; i < nums.size(); i++) {
if (i > 0 && nums[i] == nums[i - 1]) continue;
if ((target = nums[i]) > 0) break;
int l = i + 1, r = nums.size() - 1;
while (l < r) {
if (nums[l] + nums[r] + target < 0) ++l;
else if (nums[l] + nums[r] + target > 0) --r;
else {
ans.push_back({target, nums[l], nums[r]});
++l, --r;
while (l < r && nums[l] == nums[l - 1]) ++l;
while (l < r && nums[r] == nums[r + 1]) --r;
}
}
}
cout << ans.size() << endl;
// cout << s.threeSum(nums, target, count) << endl;;
}
return 0;
}
29 changes: 29 additions & 0 deletions doc/coding/test.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#include <bits/stdc++.h>

using namespace std;

int main()
{
int N;
while (cin >> N) {
int time = 0, max_sum = 0;;
vector<pair<int, int>> v;
for (int i = 0; i < N; i++) {
int X, Y;
cin >> X >> Y;
v.push_back(make_pair(X, Y));
}
// 3
// 1 1
// 2 1
// 3 1
// 4 1
for (int i = 0; i < N; i++) {
max_sum += v[i].second;
}
max_sum = max_sum - v[N-1].second - (N - 1) + v[N-1].second;
time = N + max_sum;
cout << time << " " << max_sum << endl;
}
return 0;
}

0 comments on commit 6778199

Please sign in to comment.