0%

  • 自我介绍
  • 问项目
    • 主要问了科研项目
    • 系统的组成
    • 横向比较,跟CV
    • 技术难点
    • 负责的工作
    • 系统的成果
  • 无线感知是什么
  • 实验室做什么的
  • 周围同学有做相关研究或者不同研究的吗
  • linux了解吗
    • 常用命令
  • 学习中遇到哪些困难怎么解决的
  • 哪一阶段代码能力提高最快
    • 打ACM的时候
    • 问了ACM的分工
  • 投了哪些公司哪些岗位
  • 自己的优点和缺点
  • 最近在学什么看什么
  • 反问环节
    • 部门干什么的
      • 工厂使用的系统(偏java)
      • 边缘端研发(偏c/c++)
    • 面试进展
      • 不会再有技术面了
  • 视频面,一共面了大概四十多分钟

二分图最大匹配——匈牙利算法

解析

https://blog.csdn.net/sunny_hun/article/details/80627351

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
bool find(vector<vector<int>>& graph, bool *used, int *couple, int u){
for(int i=0;i<graph[u].size();i++){
int v = graph[u][i];
if(!used[v]){
used[v] = true;
if(couple[v]==-1||find(graph, used, couple, couple[v])){
couple[v] = u;
return true;
}
}
}
return false;
}
int hungary(vector<vector<int>>& graph){
int n = graph.size();
bool used[n];
int couple[n];
memset(couple, -1, sizeof(couple));
int cnt = 0;
for(int i=0;i<n;i++){
memset(used, false, sizeof(used));
if(find(graph, used, couple, i)){
cnt ++;
}
}
return cnt/2;
}

KMP算法

详解

https://blog.csdn.net/weixin_52622200/article/details/110563434

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
void getNext(string p, int *next){
int lenp = p.length();
int j = 0, k = -1;
next[0] = -1;
while(j<lenp-1){
if(k==-1||p[j]==p[k]){
j++; k++;
if(p[j]==p[k]){
next[j] = next[k];
}else{
next[j] = k;
}
}else{
k = next[k];
}
}
}

int KMP(string t, string p, int *next){
int lent = t.length();
int lenp = p.length();
int i = 0, j = 0;
while(i<lent&&j<lenp){
if(j==-1||t[i]==p[j]){
i++; j++;
}else{
j = next[j];
}
}
if(j==lenp) return i-j;
return -1;
}

int strStr(string haystack, string needle) {
int lent = haystack.length();
int lenp = needle.length();
if(lenp==0) return 0;
int next[lenp];
getNext(needle, next);
return KMP(haystack, needle, next);
}

已通过


  • 40min
  • 自我介绍
  • 编译器项目
  • 科研项目
    • 问得详细一些,背景,技术,横向比较,系统准确度
  • 本科时做的APP
  • c/c++知识点
    • 虚继承
    • 智能指针
    • 内存分配
    • 堆栈
    • hashmap和hashtabel的区别(这是c++?)
    • map的底层
    • 内存泄漏是什么
    • c++内存泄漏监控工具(不知道。。)
  • 基础知识点
    • 进程通信
    • 线程同步
    • tcp滑动窗口(细节又忘了。。)
    • 超时重传
  • 其它知识点
    • Cookie和Session(惊了,今天下午刚看的)
    • linux常用命令
    • linux查找文件目录下的某个文件(不太会)
  • 算法和数据结构
    • 一棵树是不是另一棵树的子树
  • 数据库
    • mysql底层是b+树
    • 乐观锁
  • 设计类问题
    • 大并发问题,秒杀系统设计,库存量有限,一秒几十万访问,怎么确定库存?(不知道。。)
    • 大数据集topk问题
  • 平常遇到的问题和困难(我好像没遇到过太大的困难。。)
  • 团队合作中有个人拖后腿怎么办
  • 对加班问题怎么看
  • 反问
    • 部门是干什么的
    • 我机试最后一道算法题过没过?(结果没有。。)

理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。

HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。

由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。所以服务器给客户端们颁发一个通行证,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

Seesion

Session是服务器端使用的一种记录客户端状态的机制,使用上比Cookie简单一些,相应的也增加了服务器的存储压力。

Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。

如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。

区别

1、cookie数据存放在客户的浏览器上,session数据放在服务器上.

简单的说,当你登录一个网站的时候,如果web服务器端使用的是session,那么所有的数据都保存在服务器上面,

客户端每次请求服务器的时候会发送 当前会话的session_id,服务器根据当前session_id判断相应的用户数据标志,以确定用户是否登录,或具有某种权限。

由于数据是存储在服务器 上面,所以你不能伪造,但是如果你能够获取某个登录用户的session_id,用特殊的浏览器伪造该用户的请求也是能够成功的。

session_id是服务器和客户端链接时候随机分配的,一般来说是不会有重复,但如果有大量的并发请求,也不是没有重复的可能性。

Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户端,用Cookie保存的,用户提交页面时,会将这一 SessionID提交到服务器端,来存取Session数据。这一过程,是不用开发人员干预的。所以一旦客户端禁用Cookie,那么Session也会失效。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。

3、设置cookie时间可以使cookie过期。但是使用session-destory(),我们将会销毁会话。

4、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用cookie。

5、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。(Session对象没有对存储的数据量的限制,其中可以保存更为复杂的数据类型)