前言:
背景:成都某双非本科,以前搞嵌入式,大三转后端C++,大三下学期在阿里实习。
offer情况:腾讯、百度、阿里。
正题:
腾讯 wxg 秒剪 后端 go
一面:
1、力扣:LFU二面:
1、64位系统,下面的输出是什么 :char a[] = "Hello";
cout << sizeof(a);
const char* b[] = {"Hello", "World"};
cout << sizeof(b);
char *c = new char[10];
cout << sizeof(c);
int d = 10;
cout << sizeof(d);
void func(char e[100]) {
cout << sizeof(e);
}
2、实现String类:构造函数、拷贝构造函数、转移构造函数、赋值运算符、析构函数
3、实现定时器:秒级、单线程、高频任务。
三面:
1、某个直播平台计划开发一个高热直播间监控系统,具体需求是:a 可以管理所有直播,新开播就要加入到系统里面,直播结束就要从系统去掉
b 直播间热度是会不断变化(例如不断有人加入、点赞、送礼物、退出等因素),热度出现变化时往高热系统更新这个直播当前热度值(高频,时间复杂度希望尽量低)
c 运营人员日常巡查希望可以在任何时刻都知道当前热度最高的100个直播间(低频)
根据上述需求,请实现一个大体如下的类:
class HotLiveMgr
{
public:
int add_livet(int64_t live_id, int64_t live_hot_score) {
}
int del_live(int64_t live_id) {
}
int get_top_100_hot_live(std::vector<int64_t > *live_id_list, std::vector<int64_t > * live_hot_score_list) {
}
}
2、工行有30万个员工,其工卡号码分别是1~30万,在接下来的某天他们将举行年会,需要抽出10万个员工发奖品。我们有一个随机数生成函数rand()能够生成(0~65535]的整数,请写一个公平的抽奖程序,输出这10万个员工的工卡号码。
进阶:30万抽 任意N个员工?
---最后因为北京hc不够,转回了成都《企业微信》,不出意外应该留在这边了---
百度 搜索架构 后端 C++
一面:
C++基础、编译原理,问到不会为止,一个半小时。包括:智能指针、右值引用、move语义、完美转发、forward、pod、trival、constexpr、explict等等
二面:
1、给你A,B两个文件,各存放50亿条URL,每条URL占用64字节,内存限制4G,让你找出A,B文件共同的URL,如果是三个及至n个文件呢?(hash()%1000分治)2、力扣:最长递减子序列,要求输出序列具体是什么
3、力扣:复制复杂链表
三面:
1、10000以内的素数,写出自己认为的最优解(筛选法)2、大文件里面找出现次数最多的数(和二面一样,hash()%1000分治)
字节 房产 住小帮 go 三面挂
一面:
1、服务器socket建连代码:socket bind listen accept2、场景:抢红包的实现
3、力扣:编辑距离
二面:
1、打印多少个*?换成i<3呢?for (int i = 0; i < 2; i++) {
fork();
printf("*");
}
2、多线程有问题吗?怎么改?无锁能实现吗?
int i = 0;
int get() {
i++;
return i;
}
3、数据库有个库存count字段,并发下怎么减小库存?写伪代码
乐观锁思想
4、力扣:两个栈实现一个队列
5、力扣:子数组的最大和
三面:
1、实现类:二维数组的创建、访问、修改我用的一维指针数组实现,是不连续的,问如何使它连续?两者有什么区别?
2、实现类:O(1)访问、查询、删除。按插入顺序访问。
哈希表+链表,扩展说了哈希相关的实现
3、思路:实现断点续传
---最后还是挂了,不知道原因,四战字节了,累了,捞了也拒了---
美团 基础架构 后端
一面:
1、反转链表2、选择排序
二三面:
实习经历 ---被养鱼中---
全部评论
(0) 回帖