中级农民
- 积分
- 102
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2021-12-22
- 最后登录
- 1970-1-1
|
2022(4-6月) 码农类General 硕士 实习@腾讯 - 内推 - 视频面试 | Fail | 应届毕业生
注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
本帖最后由 小亩_gg85cge 于 2022-5-10 18:58 编辑
. Χ
bg:本人国内软件工程硕士在读(USTC),目前找实习中
. 1point3acres
先看简历,问简历上的项目大概2-30分钟
然后写算法
-baidu 1point3acres
最后问一些基础
. From 1point 3acres bbs
算法
本来用的腾讯面呗,但是一直加载不出来IDE,就用在线文档
1. 给你一个k个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。
我先手写一个两链表合并的merge方法,重点是k个怎么合并,然后这里想了一下,就先写一个两两遍历,
Q:还有什么方法吗。A:还可以用优先队列,其实就是维持k大堆。
Q:怎么实现。A:同水平的链表拿出来放在优先队列里,然后从头部取出。
Q:是这样吗···balabal。A:对
Q:又问了一遍,元素放进去排序然后直接拿出来用就好了吗。A:(最后想到了,忘了说要补充元素了)不是放进去排序就拿出来,而是拿出来最小的,然后把同链的补充进去,就像跑道赛马,每次跑出来的一批并不一定是最快的一批,只能确定头名。.google и
A:还可以用归并排序(这里说晚了,面试官说还要留时间做下一道题,就没有继续问)
- public
- ListNode merge(ListNode node1, ListNode node2) {
- if (!node1 || !node2) {
- return node1 == nullptr ? node2 : node1;. 1point 3acres
- }
- if (node1->val < node2->val) {
- node1->next = merge(node1->next, node2);
- return node1;
- }
- node2->next = merge(node2->next, node1);
- return node1;.google и
- }
- public ListNode mergeK(vector <ListNode> &lists) {
- ListNode root = nullptr;
- for (int i = 0; i < lists.size(); i++) {.1point3acres
- root = merge(root, lists);
- }
- return root;
- }
- . check 1point3acres for more.
- int main(){
- vector <ListNode> lists(k, nullptr);
- //k个链表初始化
- mergeK(lists);
- }
复制代码 2. 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬1 或2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
Q:接下来出一道可能比较少见,但是只要想明白就很简单的题。A:表示害怕。
Q:不用担心就是一道简单的动归。
(看题)
A:这道题我今早刚又刷了。. 1point 3 acres
Q:这样吗,那你刷了多少了。A:我刷没多久,根据网上精选的刷的,我有同学都刷完了。
(做题)
.--
A:这道题就是简单的累加,leetcode官方其实都没用dp数组,用了两个变量。而且还看到一个很巧妙的解法,可以转化为01背包,台阶是背包,每次填充1 or 2.- int climb(int n){
- if(n <= 1) return n;
- vector<int> dp(n + 1);. ----
- dp[1] = 1;
- dp[2] = 2; ..
- for(int i = 3; i <= n; i++){
- dp = dp[i - 1] + dp[i - 2];
- }
- return dp[n]
- }
复制代码 [i]
基础
1. 讲一下进程和线程的区别
资源/调度的单位。在linux中其实都是进程,线程不过轻量进程。在linux中,一开始Bootloader启动先不说,进入保护模式中,就是head32.s中调用start_kernel()开始生成0号进程init,这个方法最后调用rest_init(),rest_init()调用kernel_thread()创建第二个进程,就是1号进程,也是所有用户进程的父进程。然后会继续调用threadadd()生成2号进程,是所有内核线程的父进程。当rest_init()完成后,0号进程就转变为了idle进程。
我要再讲讲fork的区别吗(不用不用,不用太深入了)
2. 讲一下计网各层的协议. 1point3acres.com
..
顺序讲了应用层,传输层,网络层,到链路层就不让说了。. 1point 3 acres
. .и
3. 有了解过服务异步的情况吗(没清楚)那就说说遇到的异步吧
这个还挺多的,像是进程的工作队列,进程fork后执行,软中断下半段,还有http请求的话socket,就是select/epoll这样会阻塞
还有什么想问的
1. 你们部门对实习生哪方面比较看重. check 1point3acres for more.
主要是服务这方面,要稳定高效,能把服务独立部署起来
. ----
2. 请教了一个cpp右值引用的问题,不太明白使用的场景
像leetcode就有,嵌套多层递归时,避免开辟空间,可以保证一直操作原数组。
. From 1point 3acres bbs
然后就结束了,已经超时快30分钟了。. 1point 3 acres
[/i]. Waral dи,
[i]本来觉得答得挺好的,问的都讲了。面试官昨天还跟我说,招实习生进来了就是做一些繁琐的工作,也不会看重很难的技术,我还以为稳了结果今天一看,一面就挂了,也是不太懂面试官选人的逻辑。[/i]
[i]求大家加米![/i]. From 1point 3acres bbs
|
上一篇: 一言难尽的亚麻中国br面下一篇: 亚麻OA完直接终面吗?有老哥知道这个是啥情况吗
|