文章目录
- 2020-0822的笔试题第一道编程题
- 猿辅导2020校招笔试(一)
- 1
- 2
- 3
- 4
- 先序中序求后序,太简单。
- 6
- canci
- 猿辅导2020校招笔试(算法岗二)
- 报道的
- 第二道题太难了
- 角色分组
- canci
2020-0822的笔试题第一道编程题
- 打印完全二叉树的边界节点!!!
//#include#include
#include
#include
#include
#include
using namespace std;
void print(int A[], int len)
{
int i = 0;
while (i < len)
{
cout << A[i] << " ";
i = 2 * i + 1;
}
i = (i - 1) / 2;
//最后一层的第一个的索引。
int prev_start = (i - 1) / 2;
int prev_end = i - 1;
i++;
while (i < len)
{
cout << A[i] << " ";
i++;
}
for (int j = prev_start;
j <= prev_end;
j++)
if (2 * j + 1 >= len)
cout << A[j]<<" ";
int j;
if (2 * prev_end + 1 >= len)
j = (prev_end - 2) / 2;
else
j = prev_end;
//上面是判断一下倒数第二层的prev_end有没有被打印啊!! while (j >= 2)
{
cout << A[j] << " ";
j = (j - 2) / 2;
}
}int main()
{ int N;
cin >> N;
int* A = new int[N];
for (int i = 0;
i < N;
i++)
cin >> A[i];
print(A, N);
return 0;
}
猿辅导2020校招笔试(一) 1
文章图片
- 一看0x64
- 它和一个数字&
- 最后两bit必然是00
- 所以fun2最后两bit肯定是00
- 答案就是0啊,这么简单!
文章图片
卧槽,Prim算法复杂度居然低于 n l o g n nlogn nlogn
3
- 小猿发明了一款支持随机访问且断电丢失的存储系统,
- 读写速度和寄存器相同,
- 存储大小和磁盘相当。
- 用这款存储系统的计算机设计操作系统“猿力”。
- 不考虑经济成本,正确的是:
文章图片
【猿系列鄙视】为啥不要虚拟内存啊,虚拟内存不是让进程隔离啊,更安全呢。
- 这题目有疑问哦
- 一个全加器对两路一位数字信号的加法,
- 输入为两路一位信号I1,I2,
- 输出为一路两位信号O(含进位)
- 一路任意的3位数字信号X作为输入,要求输出Y=X*5,
- 最少需要几个全加器?
- X 左移动两位再(变成5位了)
- 加上自己
文章图片
先序中序求后序,太简单。 6
- UDP的说法中正确的是:
文章图片
- UDP和TCP均属传输层协议
- UDP无连接,不存在建立连接需要的时延。
- 空间上,TCP需要在端系统中维护连接状态,需要一定的开销。
- 此连接装入包括接收和发送缓存,拥塞控制参数和序号与确认号的参数。
- UDP不维护连接状态,也不跟踪这些参数,开销小。空间和时间上都有优势。
- C:如果接收方UDP发现收到的报文中的目的端口号不正确(不存在对应端口号的应用进程0,),就丢弃该报文,并由ICMP发送“端口不可达”差错报文给对方
- D:UDP常用一次性传输比较少量数据的网络应用,如DNS,SNMP等,因为对于这些应用,若是采用TCP,为连接的创建,维护和拆除带来不小的开销
- UDP也常用于(如IP电话,实时视频会议,流媒体等)
- 数据的可靠传输对他们而言并不重要,
- TCP的拥塞控制会使他们有较大的延迟,也是不可容忍
- 添加链接描述
- 添加链接描述
文章图片
- 一开始,我以为就是取里面三个最大的
- 比如 4,5,6
- 这样就禅城4个小组!
- 其实不是这样的,你得这样:4,5,6
- 先产生一个组
- 然后再把3,4,5插进队列里面
- 然后重新找最大的三个
- 哎,这题目真是男啊!
#include
#include
#include
#include
#include
using namespace std;
int solver(priority_queue& a)
{ int result = 0;
int len = a.size();
while (a.size() >= 3)
{
int temp1 = a.top();
//最大的
a.pop();
//cout << temp1< 1)
a.push(temp1-1);
if (temp2 > 1)
a.push(temp2 - 1);
if (temp3 > 1)
a.push(temp3 - 1);
}
return result;
}intmain()
{
int C;
cin >> C;
for (int i = 0;
i < C;
i++)
{
int size;
cin >> size;
priority_queue a ;
for (int j = 0;
j < size;
j++)
{
int temp;
cin >> temp;
a.push(temp);
}
cout << solver(a) << endl;
}
}
canci
- 添加链接描述