面试:腾讯PCG-看点
第一轮
tcmalloc
虚继承
c++类
智能指针
C/C++编译流程具体区别
coroutine协程相关应用
STL内存分布
常见HTTP状态码
常见Web攻击方式
排序算法稳定性,复杂度
算法题,比较简单
给定一棵二叉树,其中每个节点都含有一个整数数值(该值或正或负)。设计一个算法,打印节点数值总和等于某个给定值的所有路径的数量。注意,路径不一定非得从二叉树的根节点或叶节点开始或结束,但是其方向必须向下(只能从父节点指向子节点方向)。
第二轮
基本全是算法题
一个完全二叉树500个节点,多少个叶节点
快排和冒泡复杂度,稳定性
一个矩阵,可向四个方向走,左上到右下经过的数字和最小
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int arr[10][10] = {{1,100,100,100,100,100,80,90,90,19},
{1, 1, 100,100,100,100,80,90,90,19},
{100,1, 1, 1, 1, 1, 1, 1, 90,19},
{100,100,100,100,1 ,100,80,90,90,19},
{100,100,100,100,1,100,80,90,90,19},
{100,1,1,1,1,100,80,90,90,19},
{100,1,100,100,100,100,80,90,90,19},
{100,1,1,1,100,100,80,90,90,19},
{100,1,1,100,100,100,80,90,90,19},
{100,1,1,1,1,1,1,1,1,19}
};
int f[20][20];
void dfs(int i,int j,int now){
if(now>f[i][j])return;
f[i][j]=now;
if(i+1<10)dfs(i+1,j,f[i][j]+arr[i+1][j]);
if(j+1<10)dfs(i,j+1,f[i][j]+arr[i][j+1]);
if(i>0)dfs(i-1,j,f[i][j]+arr[i-1][j]);
if(j>0)dfs(i,j-1,f[i][j]+arr[i][j-1]);
}
int main(){
memset(f,60,sizeof(f));
dfs(0,0,arr[0][0]);
printf("%dn",f[9][9]);
return 0;
}
算法题:输入3,输出1,2,3,12,13,23,123
void dfs(int now,int mx,int mxd){
if(now>=mxd){
int px=0;
for(int i=0;i<mxd;i++){
px=px*10+a[i];
}
//printf("Temp:%dn",px);
V.push_back(px);
return;
}
for(int i=1;i<=mx;i++){
if(now!=0 && i>a[now-1]){
a[now]=i;
dfs(now+1,mx,mxd);
}
if(now==0){
a[now]=i;
dfs(now+1,mx,mxd);
}
}
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
dfs(0,n,i);
}
for(int i=0;i<V.size()-1;i++){
printf("%d,",V[i]);
}
printf("%dn",V[V.size()-1]);
return 0;
}
redis持久化
linux基础命令
系统设计题:滴滴抢单
智力题:四辆车,每个可加1公里油,所有车可以相互加油,一辆车最远跑多远
第三轮
快排找k大数
10亿个数字,100亿个数字,寻找交集
c++的一些问题
其他的忘了,总之都答出来了,应该这一轮过了
第四轮
400TB的字符串,4GB内存,判断是否存在两个字符串相同
面完之后查询,进入HR面试了
第五轮
HR面
面试:字节跳动-用户中心
第一轮
常规的自我介绍
项目相关,技术选型的一些思路
Redis的两种持久化
Redis数据库的淘汰、过期
缓存雪崩、缓存穿透、缓存击穿
TCP和UDP区别
TCP三次握手能否改成两次
两个栈模拟队列的操作方式
排序算法复杂度
一个一维的序列形成直方图,然后灌水,问最后形成的水坑里面有多少水
应该是过了,感觉还行
第二轮
项目相关
如何保证数据库的同步
TCP握手
链路层协议
HTTP/1.0,1.1,2.0
对称加密与非对称加密
SSL原理,如何保证证书可信
Golang临时变量转存堆
算法题:一个矩阵任意位置开始,上下左右走,只能比当前格子数大,最长路径
第三轮
项目相关
算法题
标题:1-n数字字典序第k大
描述信息
给你一个数字n(n < 1e9), 再给你一个数字k(k < n), 要求你找到1, 2, 3, ... n按照字典序排序后, 第k大的数字;
如, n = 15, k = 7;
那1 ~ 15按照字典序排序为: 1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9;
则答案为15;
第四轮
HR面
面试:阿里巴巴-云数据库-AnalyticDB
第一轮
项目
const和define的区别
动态链接和静态链接
算法题(?)对以下链表深拷贝,以下的rand表示链表中的某个节点或NULL
struct ListNode
{
int value;
ListNode* next;
ListNode* rand;
};
以下函数的行为
struct foo
{
int a;
};
void func(foo* f)
{
printf("%dn", f->a);
}
func( rand() );
以下格式日志文件,如何快速查找
2021-03-06 02:59:43.312T access_ip=xxx.xxx.0xx.xx sql= xxxx;
协程和线程
C++多线程
互斥锁和自旋锁
第二轮
项目
在C++中实现hashmap(我搞了个哈希+链表)
冲突解决方案(二次探测)
链表的优化方法(我答了块状链表)
memcached
k8s底层逻辑
docker常用命令
第三轮
HR面
面试:元戎启行
第一轮
三个算法题,智商被碾压了
第一题:n<=1000,输出2^n的精确值。一行代码。
printf("%.fn",pow(2,n));
原理是浮点数表示的阶码可以直接用。
第二题:判断a/b和c/d哪个更大。四个数均在long long范围,不使用大数进行计算。
先判断整数部分,然后取倒数反过来计算,类似辗转相除。
第三题:一个字符串,去重字符,使得结果字符串字典序最大。需要O(n)算法。
单调栈,是个原题
整个人面试完不好了,水平太低
第二轮
问了下项目,然后开始问具体问题
数据库失败处理,数据库同步策略
Redis缓存
Redis持久化
Redis分布式锁实现的方法
K8S负载均衡
K8S持久层docker出错怎么恢复
消息队列,RPC会不会,gRPC
服务器认证登录的方法
JWT原理,签名的方式、算法、HS256(HMAC签名的SHA256)
数据库密码存储,MD5、盐、彩虹表、PKCS,如何确保盐不会泄露,MySQL加盐方法
可信认证策略,Windows Hello
C++11 STL部分特性
C++ STL内的部分容器实现,multiset和set的底层实现区别
哈希表挂链表法的优化
vector中emplace_back为什么比push_back更快
死锁成因和避免
系统性能分析,怎么判断大型系统中哪个组件出现性能问题
算法题:给一个Request方法,给一个Query方法,Query方法需要统计调用前一段时间到调用时的过程中,Request被调用多少次。
第三轮
ACM经历,队里面干啥的
2020年比赛打得次数为啥下降了
威佐夫博弈
三维威佐夫博弈(我只会O(n^3))
反问
第四轮
HR面
面试:米哈游
先吐槽下,笔试挺难的,应该是目前笔试面过最难的
第一轮
项目
C++虚函数
析构函数是虚函数的原因
构造函数是否可以调用虚函数
虚函数原理
僵尸进程孤儿进程
kill,信号和信号的原理,信号捕获,SIGKILL是否可以捕获
data段,rodata段,bss段,text段,相互区别
线程间通信
C++多线程编程
乐观锁悲观锁互斥锁自旋锁
死锁和怎么避免死锁
redis原子操作
反问:是原神组
第二轮
写题为主
第一题:支持以下函数
int mihoyo_split(const char* input_str, vector<int>& output_str);
// "12,13,1001,1002" ==> [12,13,1001,1002]
// failed return -1, succ return 0
// ban atoi string
就是解析一个字符串,处理特殊情况,写代码
第二题:大端小端,怎么判断,写代码
第三题:实现一个排行榜,UID和分数,要能通过排名查UID,UID查排名,区间排名查UID,UID更新分数(两个平衡树)
后面问了下ACM队里的情况
第三轮
这把是面了基础知识,完全炸了(主要是之前问过的一些问题这把又不太会,整体应该还是答对了80%左右吧)
C++多态
C++多态的实现
析构函数虚函数原因
纯虚函数和虚函数区别
类变量地址顺序是声明还是初始化
常见排序算法和复杂度
基本有序用什么排序(应该是希尔排序)
快排什么时候最慢,快排最快复杂度是多少
Linux僵尸进程和孤儿进程
算法题:一堆括号,中间有逗号分隔的字符串,相邻的括号内字符串做笛卡尔积,求化简到最后的结果
为什么要来做游戏
能不能保研
考不考研
感谢信
目前是唯一挂了我实习面试的公司。
Comments NOTHING