赞
踩
马上春招了,分享一波干货。腾讯、百度、阿里、京东、快手、斗鱼、华为、海康威视等面试过程。昨天分享了斗鱼,今天来看看字节。
在面试之前给大家看看我的简历以及个人简介部分,因为面试过程与自己的简历有很大关系。面试官往往会结合简历以及个人简介来问。
个人简历+项目介绍+简历模板:梦想成真-----项目自我介绍
个人简介+自我介绍(视频讲解):一字一句教你面试“个人简介”
1概率
设甲先抛。设甲胜率为x。则第一次甲抛了反面后,乙胜率为x,从而甲胜率+乙胜率=x+0.5x=1,从而x=2/3。
2 握手方式
12n个人围成一圈, 两两握手, 形成n条握手的线段, 线段没有交点, 一共多少种握手方式?
#include <iostream> #include <cstring> #include <cstdio> #include <math.h> #include <map> #include <queue> #include <algorithm> #define mem(a,b) memset(a,b,sizeof(a)) #define inf 0x3f3f3f3f typedef long long LL; const LL mod=1e9+7; using namespace std; const int N=1e2+100; int a[N][N]; //a[i][0]存的是第i个数字的长度,a[i][1]是数字的最低位,a[i][ a[i][0] ]是数字的最高位 void init() { mem(a,0); a[0][0]=1; a[0][1]=1; a[1][0]=1; a[1][1]=1; for(int i=2; i<=100; i++) { int z=4*i-2,r=0,p; a[i][0]=a[i-1][0]; for(int j=1; j<=a[i][0]; j++)//乘以(4*i-2) { p=a[i-1][j]*z+r; a[i][j]=p%10; r=p/10; } while(r) { a[i][++a[i][0]]=r%10; r=r/10; } z=i+1,r=0; for(int j=a[i][0]; j>=1; j--)//除以(i+1) { p=(r*10+a[i][j])/z; r=(r*10+a[i][j])%z; a[i][j]=p; } while(a[i][a[i][0]]==0) a[i][0]--;//去掉最高位的0 } } int main() { init(); int n; while(~scanf("%d",&n)&&n!=-1) { for(int j=a[n][0]; j>=1; j--) printf("%d",a[n][j]); printf("\n"); } }
3随机数生成方式
现在有一个随机数生成器, 1/3概率生成1, 2/3生成0, 如何基于这个生成器, 得出一个1/2概率是0, 1/2概率是1的生成器?
初看确实有点头晕,也没什么思路。但是仔细想想为什么生成0和1的概率均为1/2,我们可以看成是生成0和1的概率是均等的。这样想之后,似乎就没那么不好理解了。
原始的随机数生成器,生成0 的概率为p,生成1的概率为1-p,那么怎么构造才能使得生成0和1的概率相等呢。或者说有两个独立的事件的概率是相等呢?
这样来做一下,让该随机数生成器生成两个数,那么序列是00,01,10,11概率分别为 pp,p(1-p),(1-p)p,(1-p)(1-p)
很明显,这四种情况中存在两个独立的事件概率是相等。也就是01和10,那么我把01看成是0,10看成是1,那么他们输出的概率均为p(1-p),其他的情况舍弃。这样就得到了0和1均等生成的随机器了。
思维在扩展一下,生成1,2,…n的概率分别是1/n,也就是均等的。那么我们可以想怎么生成一个序列,里面有n个独立时间,概率是相等。而且我们能够猜测到这些概率的形式为 px*(1-p)y,如果要相等,那么x必须等于y.这样就说明了序列中0和1的个数是相等的。而且这样的情况必须有多与n个才行。
数学表示就是 C(2x,x) >=n ,我们只需要知道x就能够知道序列要多长了。而且中间必定有超过n个概率为{p(1-p)}^x不相等序列。
问题就可以解决了。
其实卡我的问题是,丢掉那些多余的,只要n个等概率的序列,是否真的是等概率的(最终输出)。
4 http的问题
影响http的最大请求数
一篇让你彻底了解HTTP 的前世今生
5302 303区别
一篇让你彻底了解http请求报文和响应报文的结构
6数字在排序数组中出现的次数
剑指offer --数字在排序数组中出现的次数
7MVCC
https://blog.csdn.net/weixin_41563161/article/details/104871827(binlog redolog MVCC)
https://blog.csdn.net/weixin_41563161/article/details/105763848(MVCC的实现)
https://blog.csdn.net/weixin_41563161/article/details/105722700(Innodb中的事务隔离级别和锁以及MVCC之间的关系)
8java实现开根号
【offerMe–刷题必备】java如何实现开根号的运算
9输入url会怎么样
程序员必考—http\https的连接过程
10 索引的底层
https://blog.csdn.net/weixin_41563161/article/details/102610132(B树 B+树 红黑树详解)
https://blog.csdn.net/weixin_41563161/article/details/104163948(b树和b+树的区别)
https://blog.csdn.net/weixin_41563161/article/details/105483950(B+树分裂)
https://blog.csdn.net/weixin_41563161/article/details/105165346(索引)
https://blog.csdn.net/weixin_41563161/article/details/103553313(数据库索引怎么实现的)
https://blog.csdn.net/weixin_41563161/article/details/102859171(普通索引和唯一索引,应该怎么选择?)
https://blog.csdn.net/weixin_41563161/article/details/102457643(深入浅出索引)
11 如何实现事务的呢
https://blog.csdn.net/weixin_41563161/article/details/101111928(最全事务)
https://blog.csdn.net/weixin_41563161/article/details/102852150(事务到底是隔离的还是不隔离的?)
1 项目
个人简历:梦想成真-----项目自我介绍
2 N阶台阶,每次走一步或两步,计算共有多少种走法,并将每种走法打印出来。
直达链接:字节算法题–N阶台阶,每次走一步或两步,计算共有多少种走法,并将每种走法打印出来。
字节面试是很难的,尤其是每一面都要A题,基本A不过就要凉凉。
一定要有一个特别突出的地方让面试官对你有好印象,字节很重视有自己的特色,比如某一门很精通,或者你会什么小众的技术。
字节有很多次面试机会,所以多面试,而且每一场面试都尽量表现好,即使你知道这场面试不能通过,但是还是要努力。
字节面试之前希望大家多A leetcode以及总结常考题目。
本公众号分享自己从程序员小白到经历春招秋招斩获10几个offer的面试笔试经验,其中包括【Java】、【操作系统】、【计算机网络】、【设计模式】、【数据结构与算法】、【大厂面经】、【数据库】期待你加入!!!
1.计算机网络----三次握手四次挥手
2.梦想成真-----项目自我介绍
3.你们要的设计模式来了
4.震惊!来看《这份程序员面试手册》!!!
5.一字一句教你面试“个人简介”
6.接近30场面试分享
7.你们要的免费书来了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。