2023秋招大厂经典面试题及答案整理归纳(101-120)校招必看

目录

101. 分现在有10个人被一个魔鬼逮住了。魔鬼对于直接把人 杀掉的方法不感兴趣了。于是,他就想了一个杀人的新花样。 是这样的,一天晚上,魔鬼向着十个人宣布了游戏规则,即 明天早上他要把10个人排成一排,然后从一堆既有无限多 的白帽子混着无限多黑帽子的帽子堆为每个人随机抽取一 顶帽子,给他们10个人都戴上帽子。因为10个人是排成一 排的,所以排在第10个的人可以看到前面9个人帽子的颜 色,排在第9个人可以看到前面8个人的帽子的颜色,…以 此类推。然后,魔鬼会从排在第10个人开始,问他,你头 上的帽子的颜色是白色还是黑色,如果答对了,就放他走; 如果答错了,就被杀掉。然后同样问排在第9位的人,然后 问排在第8位的人,.…以此类推。在这其中,10个人所能做 的只有当他被魔鬼问到的时候,答白色或者黑色。不能有超 越此范围的任何行动,不然,魔鬼会把它们10个人全部杀 死。现在魔鬼给他们10个人一晚上的时间去商量一个对策,使 得他们中能存活下来的人越多越好。请问,你会有什么样的 对策,请计算出按照你的对策执行时最坏的情况下,他们中 能有多少人能100%够活下来?期望能活下来的人数又是多 少?

102. 遍历输入流,将符号和数字分开存到两个数组里,减号作为数字的负数。然后在符号集里面找*或者/,找到就把对应的数组集两个操作数比较并排序。然后数组被分割成三段,中间是乘法和两个交换数,两边是没有操作的数据,然后分别对两边做递归。如果没有找到*或者/说明全是加法,直接对数组的数据进行 排序。

103.求最长回文子串的长度

104.给定无序整数序列,求连续子串最大和。

105.给定无序整数序列,求其中第K大的数。

106.分输入是以1和0表示的一张地图,其中1代表陆地,0 代表海洋。岛屿是1上下左右相连通的区域。(不包括对角 线)输岀是岛屿的个数。可以认为地图的周围都是海洋。此题的另一个版本要求同时输岀最大区域的面积(1的个 数);输入先给岀两个整数作为数组的长和宽,各元素之间 有空格隔开。本题的输入是直接给出数组内容且元素之间没 有空格,读取输入并获得数组的维度有一定技巧。

107. C++线程同步的四种方式

108.求数组的连续最大和

109. 多态的实现原理

110. 同一个IP同一个端口可以同时建立tcp和udp的连接吗

111. 堆和栈的区别

112. 假如已知有n个人和m对好友关系(存于数字r)。如 果两个人是直接或间接的好友(好友的好友的好友…),则 认为他们属于同一个朋友圈,请写程序求岀这n个人里一共 有多少个朋友圈。

113. 请问如何保证単例模式只有唯一实例?你知道的都有哪些方法?

114. 请问数据库事物的一致性

115.请问IP地址作用,以及MAC地址作用

116.超时重传机制

117. mysql分库分表

118. 我们在将某个订单送给某一司机之前,需要计算一下这 个司机选择接受这个订单的概率,现有A,B两个订单,对某 一司机。已知;

119. 2015盏灯,一开始全部熄灭,序号分别是1-2015,先把 1的倍数序号的灯的开关全部按一次,然后把2的倍数的灯 的开关全部按一次,然后把3的倍数的开关按一次,以此类 推,最后把2015的倍数灯的开关按一次。问最后亮着的灯 有多少盏?

120.排序算法系列之算法性能评价标准与算法选择标准


101. 分现在有10个人被一个魔鬼逮住了。魔鬼对于直接把人 杀掉的方法不感兴趣了。于是,他就想了一个杀人的新花样。 是这样的,一天晚上,魔鬼向着十个人宣布了游戏规则,即 明天早上他要把10个人排成一排,然后从一堆既有无限多 的白帽子混着无限多黑帽子的帽子堆为每个人随机抽取一 顶帽子,给他们10个人都戴上帽子。因为10个人是排成一 排的,所以排在第10个的人可以看到前面9个人帽子的颜 色,排在第9个人可以看到前面8个人的帽子的颜色,…以 此类推。然后,魔鬼会从排在第10个人开始,问他,你头 上的帽子的颜色是白色还是黑色,如果答对了,就放他走; 如果答错了,就被杀掉。然后同样问排在第9位的人,然后 问排在第8位的人,.…以此类推。在这其中,10个人所能做 的只有当他被魔鬼问到的时候,答白色或者黑色。不能有超 越此范围的任何行动,不然,魔鬼会把它们10个人全部杀 死。
现在魔鬼给他们10个人一晚上的时间去商量一个对策,使 得他们中能存活下来的人越多越好。请问,你会有什么样的 对策,请计算出按照你的对策执行时最坏的情况下,他们中 能有多少人能100%够活下来?期望能活下来的人数又是多 少?


大家约定白代表偶,黑代表奇,则第10个人的回答是前9个帽子中白帽的数量的奇偶。 他自己有50%的机会。-第9个人听到他的回答后,结合他看到的8顶帽子中白帽的奇 偶,可以知道自己的帽子的颜色,如实作答。第8个人知道9顶帽子中白帽的奇偶,加 上听到第9顶帽子的颜-色,就可以知道前8顶帽子中白帽的奇偶(如果第9个人答白, 则前8顶中的白帽奇偶性与第第10个人所说的相反;如果第9个人答黑,则相同),再 结合所看到前7顶-帽子中的白帽数量,也可以推出自己的帽子颜色,也如实作答。依 此类推,前9个人都可以活下来,第1个人有一半机会。



102. 遍历输入流,将符号和数字分开存到两个数组里,减号作为数字的负数。然后在符号集里面找*或者/,找到就把对应的数组集两个操作数比较并排序。
然后数组被分割成三段,中间是乘法和两个交换数,两边是没有操作的数据,然后分别对两边做递归。
如果没有找到*或者/说明全是加法,直接对数组的数据进行 排序。

#include <iostrearn〉
#include 〈vector〉
#include〈math. h>
using namespace std;
/林
1 + 2 + 1+-4 *-5 + 1
1 + 1 + 2 +-5 *-4 + 1
*/
int data[100];
char fuhao L100J;
/林
*快排序
* ©param a
* ©param low
* ©param high
*/
void quicksort (int af], int low , in,: high)
if (low<high)
[
int i = low, j = high;
int x = a[low];
while(i〈j)
[
while(i<j && a[j] >= x) j—; if(i<j) a[i++] = a[j];
while(i<j && a[i] <= x) i++; if(i<j) a[j—] = a[i];
a[i] = x;
quicksort (a, low , i-l); quicksort (a, i+1 , high);
void my Sort (int data[], char fuhao int begin, int end) { for (int i = begin; i < end; ++^) {
if (fuhao [i] == W | | fuhao [i] == ' /') {
//先对乘除两边进行排序
if (data[i] > data[i+1];{
int temp = data[i];
data[i] = data[i+1].
data[i+1] = temp;
my Sort (data, fuhao, begin, i-l); my Sort (data: fuhao, i+2, end); return;
//
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值