2022-10-19-TPLink二面-44min
为什么要四次握手
智能指针
线程池
struct class 区别
stl支持线程安全吗?为什么不支持?
解释二叉平衡树,了解红黑树吗?
查找一个单向链表的中间节点,如果存在两个则返回前一个
给40亿个不重复无符号int,乱序,再给几个数,判断这几个数是否在那40亿个数里
有多个TCP链接(长连接数小于十万个),当有数据通过时保存链接,T时间范围内没数据则断开连接;设计数据结构管理连接,超时精度10s,每秒请求量小于1000
n个人晚上过桥,只有1个手电筒,每次只能两个人一起过,过去后另一个人把手电筒再拿回来,第i个人过桥时间为t[i],过桥速度以慢的那个人为准,求最短过桥总时间。编程实现。
先说了下思路,说了两个方案,最快的人和最慢的人一起走,最慢的两个人一起走
然后要我共享屏幕实现下
#include<vector> #include<algorithm> uint32_t pass(std::vector<uint32_t> t){ uint32_t s=0; uint32_t n=t.size(); sort(t.begin(),t.end()); uint32_t i=0,j=n-1; while(j>1){ uint32_t t1=t[j]+t[j-1]*2+t[0]; uint32_t t2=t[j]+t[0]+t[j-1]+t[0]; if(t1>t2){ s+=t2; }else{ s+=t1; } j-=2; } s+=t[0]+t[1]; return s; } // 1 3 5 7 9 200 // 201+10+8+6+4 //
肯定是错的,但还是写下来了,肯定是最快的和最慢的人过去时间最少,t1肯定大于等于t2
不知道咋做了,只记得当大一助教时遇到过类似的
写完后在写样例拖时间
但面试官说时间有限,看我写完了,只说有些边界条件没考虑好,没说思路是错的......