关于深信服的评价

(57条评价)
  • 笔试难度: 一般
  • 面试难度:
  • 流程体验:
  • 头像
    三年五载1995 C/C++网络安全 | 实习
    • 笔试难度: 很难
    • 面试难度:
    • 工作感受: 很好
    面的是深信服 的星耀计划中的C/C++岗位。 笔试,第一题是种树问题,考察深搜+回溯,第二题是黄金营业时间,考虑问题的边界细节。个人总结: 1、拿到题的时候先把所有题目看完,并先攻克简单的题 2、dfs加回溯需要加强熟悉 3、对细节把握加强 第一面: 时间:5月30日。20min 问题: n叉树的复杂度 快排(复杂度、实现) dfs、bfs ARP hash表(实现原理) Linux 虚函数(...) malloc和new free(free指针为什么知道多少大小) 解答: n叉树的深度复杂度 O(nlogn)= n(1 +1/2+1/3 +1/4 + 1/5+ 1/6+1/7+1/8 +...1/n)(若每次问题的复杂度为n则为nlogn) O(logn)= 1 +1/2+1/3 +1/4 + 1/5+ 1/6+1/7+1/8 +...1/n(用常数时间将问题的大小削减为某一部分(通常是1/2)) 算法的实现(一)时间复杂度为O(N),空间复杂度logN 1.int maxDepth(Node* root)   2.{   3.    if(root==NULL)   4.        return 0;   5.    int res=0;   6.    for(int i=0;i<root->children.size();i++)   7.    {   8.        res=max(res,maxDepth(root->children[i])));   9.    }   10.    return 1+res;   11.}   算法的实现(二)时间复杂度O(N),空间复杂度logN 1.queue<Node*> q;   2.int maxDepth(Node* root)   3.{   4.    if(root=NULL)   5.        return 0;   6.    int res=0;   7.    q.push(root);   8.    while(q.size())   9.    {   10.        for(int i=q.size();i>0;i--)   11.        {   12.            Node* t=q.front();   13.            q.pop();   14.            for(int j=0;j<t->children.size();j++)   15.            {   16.                q.push(t->children[j]);   17.            }   18.        }   19.        res++;   20.    }   21.    return res;   22.}   快排(复杂度、实现) 排序方法 平均情况 最好情况 最坏情况 辅助空间 稳定性 冒泡排序 O(n2) O(n) O(n2) O(1) 稳定 简单选择排序 O(n2) O(n2) O(n2) O(1) 不稳定 直接插入排序 O(n2) O(n) O(n2) O(1) 稳定 希尔排序 O(nlogn)~O(n2) O(n1.3) O(n2) O(1) 不稳定 堆排序 O(nlogn) O(nlogn) O(nlogn) O(1) 不稳定 归并排序 O(nlogn) O(nlogn) O(nlogn) O(n) 稳定 快速排序 O(nlogn) O(nlogn) O(n2) O(logn)~O(n) 不稳定 1.void QuicSort(vector<int> &arr,int left,int right)   2.{   3.    while(left<=right)   4.        return;   5.    int i=left,j=right;   6.    int temp=arr[left];   7.    while(i<j)   8.    {   9.        while(arr[i]<=temp&&i<j)   10.            i++;   11.        while(arr[j]>=temp&&i<j)   12.            j--;   13.        if(i<j)   14.            swap(arr[i],arr[j]);   15.    }   16.    arr[left]=arr[i];   17.    arr[i]=temp;   18.    //swap(arr[i],arr[left]);   19.    QuicSort(arr,left,i-1);   20.    QuicSort(arr,i+1,right);   21.}   时间复杂度:nlogn 解释:每次排序的复杂度为O(n),而每次递归进去的复杂度近似于O(n/2)所以为nlogn dfs、bfs https://www.jianshu.com/p/bff70b786bb6 使用队列Queue实现图的BFS遍历 递归实现图的DFS遍历 使用栈Stack迭代实现图的DFS遍历 广度优先搜索是连通图的一种遍历算法这一算法也很多重要图的算法原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了宽度优先搜索类似的算法。 深度优先搜索是一个针对图和树的遍历算法,英文缩写为DFS,一般用堆数据结构来辅助实现DFS算法。 ARP ARP协议(地址解析协议Address Resolution Protocol),根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网上的所有主机,并接收返回消息,以此确定目标地址;接收到返回消息后将该IP地址和物理地址存入本机ARP缓存(缓存机制->超时重发,拥塞控制,滑动窗口)中并保留一段时间,下次请求时直接查询ARP缓存以节约资源。 ARP缓存是个用来存储IP地址和MAC地址的缓存区,其本质就是一个IP地址—>MAC地址的对应表,表中每一个条目分别记录了网络上其他主机的IP地址和MAC地址(类似于路由表) hash表(实现原理) https://blog.csdn.net/duan19920101/article/details/51579136/ 散列表(Hash table,也叫哈希表),时根据(key value)而直接进行访问的数据结构。它通过关键码值映射到表中一个位置来访问记录,以加快查找速度。这个映射叫做散列函数,存放记录的数组叫做散列表。 若关键子为k,则其值存放再f(k)的存储位置上。由此,不需要比较直接取得所查记录。 对不同的关键字肯能得到同一散列地址,k1≠k2,而f(k1) ≠f(k2),这种现象称为冲突。根据散列函数f(k)和处理冲突的方法将一组关键字映射到一个有连续地址集上,并以关键字地址集中的“像”作为记录在表中的存储位置。 若对于关键字集合中的人一个关键字,经散列函数映像到地址集合中任何一个地址的概率时想等的,则称此类散列函数为均匀散列函数,这就使关键字经过散列函数得到一个“随机地址” 哈希表的优点 不论哈希表中数据有多少,增加,删除,改写数据的复杂度平均都是O(1),效率高 实现哈希表 1、哈希表原理 如果说每一个数据它都对应着一个固定位置,那我们查找特定一个数据时,就可以直接查看这个数据对应位置是否存在数据。例子:开学的时候,老师会给学生每一个人分配一个位置,而且不允许学生随便乱坐位置,以后老师要查看今天李刚同学有没有上课,直接看李刚同学的位置是不是有人就可以判断,没必要点名。 2、实现简单的哈希表 哈希表是最常用的数据结构之一,对于其用法,大家都非常熟悉,这里详细探讨一下其原理。哈希表的底层实际上是基于数组来存储的,当插入键值对时,并不是直接插入该数组中,而是通过对键进行Hash运算得到Hash值,然后和数组容量取模,得到在数组中的位置后再插入。取值时,先对指定的键求Hash值,再和容量取模得到底层数组中对应的位置,如果指定的键值与存贮的键相匹配,则返回该键值对,如果不匹配,则表示哈希表中没有对应的键值对。这样做的好处是在查找、插入、删除等操作可以做到O(1) O(1)O(1),最坏的情况是O(n) O(n)O(n),当然这种是最极端的情况,极少遇到。 Map与hashmap区别 Map集合的特点: 在网上看到有关STL中hash_map的文章,以及一些其他关于STL map和hash_map的资料,总结笔记如下:     1、STL的map底层是用红黑树实现的,查找时间复杂度是log(n);     2、STL的hash_map底层是用hash表存储的,查询时间复杂度是O(1);     3、什么时候用map,什么时候用hash_map?     这个要看具体的应用,不一定常数级别的hash_map一定比log(n)级别的map要好,hash_map的hash函数以及解决地址冲突等都要耗时间,而且众所周知hash表是以空间换时间的,因而hash_map的内存消耗肯定要大,一般情况下,如果记录非常大,考虑hash_map,查找效率会高很多,如果要考虑内存消耗,则要谨慎使用hash_map。 虚函数(...) malloc和new malloc分配内存大小至少维size参数所指定的字节数 malloc的返回值是一个指针,指向一段可用内存的起始地址 多次调用malloc所分配的地址不能又重叠部分,除非某次malloc所分配的地址被释放掉 malloc应该尽快完成内存分配并返回 实现malloc时应同时实现内存大小调整和内存释放函数(realloc和free) malloc函数在内存中找一片指定大小的空间,然后将这个空间的首地址给一个指针变量,这里的指针变量可以时一个单独的指针,也可以是一个数组的首地址。物理上可以不连续,逻辑上是连续的。 malloc的具体实现机制:Linux内存管理。 new返回指定类型的指针,并且可以自动计算所需要的大小,(先构造函数,再申请内存,delete则正好相反) free(free指针为什么知道多少大小) 系统在分配内存时除了分配指定的内存空间外,还有分配用于保存内存空间大小等消息,存放于申请空间之前。所以内存释放时不再需要指定释放多大的内存空间,只需要指定该内存空间的首地址。 第二面: 时间:6月6日,30min 问题:"30min 基于项目问的文件读写操作 TCP三次握手协议(SYN,SYN+ACK,ACK) 四人过桥 自己最自豪的经验 自己解决的问题 数据库的基本操作 Linux操作 问考官问题" 最好许愿实习 offer
    发表于 2020-06-06 22:55:54 赞 (3)
  • 头像
    夕闻道 C/C++开发 | 社招
    • 笔试难度: 暂无评分
    • 面试难度:
    • 工作感受: 很好
    本人刚毕业半年一直做嵌入式裸机开发,没用过C++。在招聘平台上看到一个深信服一个急聘的岗位,好奇深信服面试什么难度,投了简历后几分钟,就有邮箱通知简历会被尽快筛选。突然晚上的时候就有深信服的面试官用自己手机打电话过来了,一个沉稳的老男人的声音。开始要求做了一个简短的自我介绍,问了有哪些技术栈应用经验,我表明自己C语言算是很熟悉了,但C++没用过,只是了解一点。后面就开始了一轮基情澎湃的灵魂拷问。问了十三四个问题,问的都比较精辟,对于我这种小白来说比较考验工作场景的丰富度。对于我一些不叫生疏的问题,面试官也会适当引导提示,实在答不出了面试官也会给出解题思路,整个面试过程非常舒心。问完最后一个问题面试官直接给了我答复,说算法这块还是差些火候,然后愉快的说拜拜了。 列几个问过的值得注意的问题: **怎样定义一个动态大小的结构体** **C++中如何使用C函数** **return和exit调用的区别** **避免使用malloc-free造成内存碎片的方法** **算数表达式中的后缀转成中缀** **已知长度为N的字符串,限制O(N)时间复杂度和O(1)空间复杂度完成完成字符串的前后半部分调换,例如“ABCDEFG”变换成“DEFGABC”** **最小时间复杂度的求无符号整数中二进制中1的个数的方法**
    发表于 2020-04-11 13:44:05 赞 (0)
  • 头像
    匿名用户 安全开发工程师 | 校招
    • 笔试难度:
    • 面试难度: 暂无评分
    • 工作感受:
    太久了,3月24笔试,一直没出结果,以为挂了,也忘了考的是什么,结果前天收到面试通知,所以感觉应该不难的
    发表于 2020-04-11 11:43:09 赞 (0)
  • 头像
    匿名用户 技术支持工程师 | 校招
    • 笔试难度: 简单
    • 面试难度: 很难
    • 工作感受:
    笔试比较简单,学过数通的都能答个差不多。面试两次群面都挂了,基本十挑一,说的多了不行,少了也不行,后来听有人和HR聊,说眼缘。上次准备的挺充分的,感觉群面过了技术面不是问题,可惜挂群面上了。。。
    发表于 2020-03-05 10:47:27 赞 (1)
  • 头像
    我也想要OFFER呢 C++(数通,物联网) | 校招
    • 笔试难度:
    • 面试难度: 一般
    • 工作感受:
    1:电话面(35min左右) 结论:等通知 题目:(因为某些原因我的面试官是PY的) 基础C/C++知识,关键字作用 虚函数作用,内存分布 数据结构: 你对排序的了解 堆了解嘛? 快排时间复杂度,快排的优化,怎么随机分布原有的数据,怎么确定原有数据需要处理(有序无序的判定) n*n的矩阵放M的雷,保证概率均等 //PS:个人想法:矩阵内随机分布[0~N2]内的值,再确定所需要的概率,10%就使 [0,0.1N2]的值位置为雷。再对值排序,使前M个数据有效。 hash的生成 网络编程(我不会所以没继续问) 剩下几分钟在聊项目 没啥印象深刻的难点。
    发表于 2019-10-11 11:01:31 赞 (6)
  • 头像
    吃鸡腿的卡乐比 研发产培生 | 校招
    • 笔试难度: 暂无评分
    • 面试难度:
    • 工作感受:
    产培生面试,通知11:30到的,我11:00到的,在深信服总部面试,交了简历,到了11:30有人来叫我进去面试。 校园大使免了群面。面试官问题如下: 1.自我介绍; 2.实习经历; 3.校园经历的暑期实践;为什么你们的项目会被通过; 4.问了下都是从哪些渠道学习产品经理知识的。 答:从各类帖子吧。然后就是看书,看了《上瘾》《启示录》《结网》《人人都是产品经理》《金字塔原理》。说了下上瘾和启示录让我知道了什么。然后对比了下《结网》和《人人都是产品经理》,这里我蠢了,自己给自己挖了个坑,我说结网是腾讯系,人人是阿里系产品。问我阿里系和腾讯系有啥区别,balabala半天没说清楚,我自己都感觉自己没说清楚。 5.做产品有什么优势; 6.我自己想的一个App,带了个从想法到实现的过程,的这个聊了好久。 聊完面试官说哎呀光聊天了都没问什么。这个我感觉聊了有快半个小时。 7.问了TCP/IP协议,UDP和TCP的区别。 这个看的太早了,选择岗位的时候看的,因为岗位要求里有说,看的都是概念,没理解,当场就忘了。 8.除了你自身说的优势,你觉得产品经理还要有哪些能力。 9.对网络安全了解多少,这个也说的比较少。 10.还有什么想问的,感觉这个没问好,因为确实当时一直在了解云计算,所以就问了当时我最感兴趣的云计算的前景,结果面试官说他是搞安全的,可能问的太大了。面试官也没怎么回,还有就是我balabala说的快,面试官是个慢性子,我刚说完问题,见他没立刻说话,然后我就又说,结果他也开口了,直接打断他了。之前对象就跟我说我老打断她说话,看来确实要注意。 整个过程45分钟。 我觉得凉的点有两个吧,一是技术上理解的太浅,好多没往深处发散;另一个是我那个O2O聊了太久,面试官都没记在他笔记本上。就之后问技术类问题的时候面试官开始往笔记本上记。 所以看来技术类问题要重视。收到面试通知的前几天一直在看产品经理的面经和深信服官网上的产品介绍了,准备方向有点偏差。 所以给大家建议,就是在准备面试的时候把企业岗位的介绍截图下来,根据岗位介绍来进行准备。 还有可能就是无意识打断面试官说话了?阿里系和腾讯系没讲清楚大概也是一个点。后来去36kr又看了一下几个作者对这两个的系的看法。 好了祝大家都拿到心仪offer!O(∩_∩)O哈哈~
    发表于 2019-09-25 15:58:22 赞 (5)
  • 头像
    匿名用户 C++ | 校招
    • 笔试难度: 一般
    • 面试难度: 简单
    • 工作感受:
    硕士,长沙分部,SPoffer,15*16。
    发表于 2019-03-26 15:25:03 赞 (26)
  • 头像
    匿名用户 c++研发 | 校招
    • 笔试难度: 很简单
    • 面试难度: 一般
    • 工作感受: 一般
    总体来说,,不难,,笔试比较简单,,,面试问的题目也都不是很难,,,,拿到了offer,但是给的太低emmm
    发表于 2019-03-15 20:51:00 赞 (13)
  • 头像
    _1478 校招
    • 笔试难度: 暂无评分
    • 面试难度: 暂无评分
    • 工作感受: 暂无评分
    该用户没有填写应聘感受
    发表于 2019-02-23 15:31:54 赞 (0)
  • 头像
    • 笔试难度: 暂无评分
    • 面试难度: 暂无评分
    • 工作感受: 暂无评分
    该用户没有填写应聘感受
    发表于 2019-02-22 23:00:22 赞 (0)