实习整理(五)

18.C++中模板声明有如下两种方式:
template <class T1,classT2> template<typename T1,typename T2>

19.堆排序删除堆顶元素:交换堆顶元素和最后一个元素,之后调整堆,记住调整堆不再是从len/2开始了,而是从堆顶,即第一个元素开始了

20.涉及大量字符串的查找或者排序,就建立Trie树(字典树); 查找数组中前k个数,就使用快速排序和堆排序; 类似于使得大写字母排在前面,小写字母排在后面的,就使用快速排序;查找字符串中最长回文数,最长重复子串,两个子串的最长公共子串等字符串匹配问题,就使用后缀树;
大量文件,比如查找文件中重复的数据,选择出现次数最多或最少的数据等:分治思想,Hash(之后再用hash_map容器);海量数据的查找,查重等:位图或者布隆过滤(和几个哈希函数相关的)

21.堆和栈的区别:堆是由程序员进行分配,释放,通过malloc和new进行分配,堆不同于数据结构中堆的概念,它的底层数据结构有点类似于链表,因此它是一块不连续的内存,使用起来比较方便,不过速度慢;栈是由编译器进行分配释放,是一块连续的内存区域,速度快

22.C++中的STL即标准模板库,它为用户提供了泛化的数据结构(容器)和算法,如hashMap等,要实现一个具体的容器组件及其方法,如vector,可以使用数组

23.浅拷贝和深拷贝的区别
  浅拷贝有点类似于引用对象,它是指源对象和拷贝对象共用一个实体,其中任何一个对象的改动都会影响另外一个对象;深拷贝有点类似于值引用,它是指源对象和拷贝对象是相互独立的,其中任何一个对象的改动不会影响另外一个对象
C++中默认的拷贝构造函数为浅拷贝

24.DDOS全名是Distributed Denial of service (分布式拒绝服务),很多DOS攻击源一起攻击某台服务器就组成了DDOS攻击

ps:网易语音笔试中就有上述两个题目,感觉网易笔试题挺有水平的。。

25.Linux中常用的命令:
cat:查看文件  more:一页一页的查看文件内容  less:和more功能类似,但是它可以利用方向键往前或者往后查看文件   ls:列出文件列表  mount:显示挂载的文件系统信息  find:查找文件  crond:调度命令 chmod:改变文件的读写权限

26.C++中struct的成员默认的属性是public,而类成员默认的属性是private

27.堆排序的时间复杂度:O(nlogn)    建堆的时间复杂度:O(n)

28.僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程;    孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程,孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。僵尸进程将会导致资源浪费,而孤儿进程则不会

29.求某问题是否有最优解,如怎么样达到最大或者最小,可以考虑用分治法,动态规划法,贪心法解决,这些方法都是通过求得子问题的最优解从而达到整个问题的最优解,都用到了递归

30.树的最大层次即为树的深度或者高度,而不是树的总层数为树的深度或者高度

31.二叉树的先序,中序,后序遍历的非递归实现可以使用栈,层次遍历可以使用队列

32.m个元素k路归并的归并趟数s=logk(m)

33.Linux系统中 删除空目录的命令:rmdir  删除非空目录的命令:rm -rf  
ps:这个题目UC笔试考过,UC的笔试题水平一般,且以Java为主,貌似今年实习生笔试题和去年的一样。。。

34.C++中静态链接库和动态链接库的区别?
静态链接库:以.a(linux)  .lib(windows)命名的文件,程序编译时和目标文件一起组成可执行文件,因此代码体积较大,比较浪费空间,属于全量更新(即所有加载了该静态库的文件都需要重新编译)
动态链接库:以.so(linux) .dll(windows)命名的文件,程序运行时和目标文件一起组成可执行文件,因此代码体积较小,属于增量更新(即只需要更新动态库即可)

ps:这个知识点感觉很基础,很多公司的笔试题都有这道题目

35.malloc(free) 和 new(delete)的区别
共同点:动态的分配和释放内存
区别:malloc 是库函数,需要加载头文件;而new是运算符,不需要加载头文件;
          malloc分配内存时还需调用构造函数,同时需要指定分配的字节数;而new不需要,它可以自动进行初始化;
          malloc分配的是一块内存;new生成的是一个对象

未完待续。。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值