昨晚练题的时候一直卡到了早上5点多,虽有不甘,但还是上床去睡了,毕竟过劳死这东西在这一行也不算啥新鲜事了,9点多的时候迷迷糊糊的听到了电话声,第一次没接,之后再次响起的时候那边就给说了,请于今天下午1点半至科大讯飞XXX路参加软件研发实习岗位的笔试面试,这才想起前两天刚在网上投了份讯飞的实习简历,本来大不算过去了,导师那边早就在催过去了,一直还在学校等研究生现场报名,但是那边貌似说今天只有2个人面试研发实习岗位,考虑到影响不太好,就答应过去了,这一路上转车转的我头晕眼花,到了那里。
等到下午1点半开始笔试,一个小时,看了一下试卷,感觉还算正常,没有什么太刁专的问题,就冲冲的答完了。附上试题:这里不得不吐槽一下,我说讯飞好歹也是**省内挺大的一家科技公司啊,敢不敢专业一点,回来之后才发现这些题网上竟然有原题!
1. 已知二叉树的前序遍历为ABCDEFGHIJ,中序遍历为CBEDAHGIJF,请画出其二叉树结构。
注:基础题
2.求一个整数数组的最大元素,用递归方法实现。
#include <iostream>
#include <cmath>
using namespace std;
int maxnum(int a[], int n)
{
if(n == 1)
return a[0];
if(n>1)
{
return max(a[0], maxnum(a+1,n-1));
}
}
int main()
{
int num[10] = {0,1,2,3,4,5,6,7,8,9};
cout<<maxnum(num,10)<<endl;
return 0;
}
注:以上为网上给出答案,笔者的做法如下:
算法思路:
int a[n];
int max(int n)
{
if(n==1) return a[0];
return a[n-1]>max(n-1)?a[n-1]:max(n-1);
}
3.什么是虚拟存储器?虚拟存储器的特点是什么?
虚拟存储器:在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理贮存容量大得多,可寻址的“主存储器”。虚拟存储区的容量与物理主存大小无关,而受限于计算机的地址结构和可用磁盘容量。
特点:多次性、对换性、虚拟性。
多次性是指一个作业被分成多次调入内存运行,亦即在作业运行时没有必要将其全部装入,只需将当前要运行的那部分程序和数据装入内存即可;以后每当要运行到尚未调入的那部分程序时,再将它调入。
对换性是指允许在作业的运行过程中进行换进、换出,亦即,在进程运行期间,允许将那些暂不使用的程序和数据,从内存调至外村的对换区(换出),待以后需要时再将它们从外存调至内存(换进)。
虚拟性是指能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。
注:笔者由于时间关系只回答了 逻辑上扩充内存
4.什么是this指针?其主要功能是什么? this指针是类的一个自动生成、自动隐藏的私有成员,它存在于类的非静态成员函数中,指向被调用函数所在的对象的地址。全局仅有一个this指针,当一个对象被创建时,this指针就指向对象数据的首地址。 一种情况就是,在类的非静态成员函数中返回类对象本身的时候,直接使用 return *this;另外一种情况是当参数与成员变量名相同时使用this指针,如this->n = n (不能写成n = n)。
注:笔者当时只是回答了指向当前对象
5.C++程序运行时有哪些常见的错误?解决方法是什么?
注:笔者结合自己编程的一些经验简要回答了一下,比如内存泄露,栈溢出等等
6.在网络传输超大的文件(比如2G以上的文件),你的解决方案是什么?
注:笔者当时首先想到的就是文件分割并行传输,事后想想还是不太靠谱。。。
7.写出字符串类的必备构造函数和赋值运算符重载的实现方法。
注:大致写了一下(面试时面试官看到我的实现之后问我以前是不是做Java的,后来一想自己的代码好像是Java风格。。。)
8.已知一个整数数组A[n],写出算法实现将奇数元素放在数组的左边,将偶数放在数组的右边。要求时间复杂度为O(n)。
void partition(int A[], int n)
{
int x;
int i = 0;
int j = n-1;
while(i != j)
{
while( a[i]%2 == 1)
i++;
while (a[j]%2 == 0)
j++;
if(i < j)
{
x = a[i];
a[i] = a[j];
a[j] = x;
}
}
}
注:笔者此题仅仅是给出了算法思路:不过大同小异:
a1 a2 a3 ...... an-1 an
i j
while(i<j)
{
if(ai为奇,aj为偶) ++i,--j;
if(ai为偶,aj为奇) swap(ai,aj),++i,--j;
if(ai为奇,aj为奇) ++i;
if(ai为偶,aj为偶) --j;
}
之后又等了一会,估计应该是一个技术主管类的负责人开始叫我过去面试了。
首先是噼里啪啦一堆项目经验之类,其次又开始面算法了:
第一题是递归判断五子棋问题,在一个棋盘上,0代表空,1代表黑子,2代表白子,现给定一个坐标(ax,ay),代表当前下的黑子的位置,求递归判断黑子是否已经赢了(不考虑赢的趋势,也即仅仅判断当前状态)
然后就是问如何求1到1000000内所有素数,(相信弄过一点算法都清楚筛选法)
最后问了个如何在一个序列中求第k大的数,笔者当时脑袋一热回答了二叉搜索树+优先级(也OK),面试官听完后就来了句,不就是堆嘛。。。
实习面试经历大致就这样吧,累了,睡了。。
分享到:
相关推荐
总结来说,二维行程编码是一种结合了行程编码和线性四叉树的无损图像压缩技术,尤其适用于具有空间连续性的数据,如GIS领域的图像数据。通过高效地编码和存储连续像素块,它能够在保留图像质量的同时,显著减少数据...
根据实验结果,总结行程编码在实际应用中的效果,讨论其优缺点,以及在多媒体数据压缩中的作用。 **七、附录** 提供完整的程序源代码,包括`run_length`函数用于编码,`print_rle`用于显示编码后的链表,以及`rle_...
RLE(Run-Length Encoding,行程长度编码)作为一种简单有效的无损压缩算法,在图像压缩领域占据着重要的地位。该算法的核心思想是对连续重复出现的数据进行编码,用一个计数值和一个数据值代替原有的重复序列,从而...
这个压缩包文件似乎包含了一个用于打印机票行程单的程序或模板,让我们深入探讨一下相关的知识点。 1. **机票行程单**:机票行程单是旅客购买机票后,航空公司或票务代理提供的一个详细记录了航班信息的单据,包括...
总结来说,"小车矩阵行驶最短行程算法"涉及的知识点包括: 1. C语言基础:变量、数组、循环、函数等。 2. 图论与最短路径算法:Dijkstra算法、A*算法、BFS算法。 3. 数据结构:二维数组、链表、二叉堆。 4. 启发式...
### 如何使用安装3SE行程开关 #### 一、3SE行程开关简介 3SE行程开关是一种用于检测机械设备运动部件位置或状态变化的自动化元件,广泛应用于各种工业控制场合,如机械制造、冶金、石油化工等行业。它通过检测物体...
解决行程问题的基本步骤可以总结为以下几点: 1. 分析问题:确定问题中的已知量和求解目标,明确运动物体之间的关系。 2. 设未知数:根据问题的要求设出未知数。 3. 列方程:根据速度、时间和距离的关系列出方程。 ...
机械式行程控制装置通过物理挡块或刻度盘实现定位,简单但精度有限。电气式装置,如伺服电机和步进电机,通过电信号控制,具有更高的精度和灵活性。磁性、光学和感应式装置则利用磁场变化、光束中断或感应信号来检测...
总结来说,这个项目涉及到的主要知识点包括:jQuery库的使用、jQuery UI Datepicker组件、事件监听和处理、JavaScript对象操作、数组过滤方法以及用户交互设计。通过这些技术,我们可以创建一个实用的日历时间表,...
通过对速度、时间和路程的分析,我们可以运用比例关系进行计算,无论是在简单的还是复杂的行程问题中,这一技巧都显得尤为重要。在实际教学中,教师需要引导学生理解和掌握比例的核心概念,并通过实例练习提高其运用...
哈弗曼编码适用于简单数据结构,行程编码高效处理同色区域,LZW编码擅长捕捉重复模式,而JPEG编码则在保持较高图像质量的同时实现较大程度的压缩,尤其适用于真实感图像。了解并熟练掌握这些编码方法对于优化图像...
总结来说,空行程时间发生仪是一种创新的产品,它利用单片机技术的高精度和高稳定性特点,有效解决了现有测试仪器存在的问题,为提升机等设备的安全性测试提供了更加精确和可靠的解决方案。这对于提升矿山设备安全...
总结,本文详细介绍了一种基于霍尔元件的自行车速度/行程测试仪的设计方案,从硬件配置到软件实现,全方位展示了如何利用现代微电子技术监测自行车的运动参数。这种测试仪不仅提升了骑行者的运动体验,也为自行车...
这个简单而重要的公式,是解决行程问题的核心。课件借助运输车辆的实例,直观地呈现了这一关系:如果一辆运输车每小时行驶50公里,那么在一个半小时后,它将行驶50公里/小时 × 1.5小时 = 75公里。这个简单的例子,...
教案的总结部分对行程应用题的新特性以及解题时需要注意的事项进行了归纳。与之前的题目相比,新题目更注重实际情境的构建和动态过程的分析。解这类问题时,学生必须首先明确问题的类型,如是追及问题还是相遇问题;...
总结,解决行程问题的关键在于理解速度、时间和距离的关系,并灵活运用它们的公式。对于相遇问题,我们需要考虑相对速度,而对于环形跑道的问题,还要考虑到行程的周期性。通过这样的策略,我们可以解决各种复杂的...
总结:比例解题法是解决行程问题的一种高效策略,尤其在速度、时间和路程之间有明确比例关系时。通过理解这些关系并熟练运用,可以简化问题,使复杂计算变得简单易懂。对于小学高年级和初中生来说,掌握这种解题方法...
总结来说,角行程限位开关作为一种重要的工业自动化控制元件,在保证设备安全、提高运行精度以及减少维护成本方面发挥着重要作用。它是工业生产中不可或缺的一部分,为工厂自动化、生产线的可靠运行提供了坚实保障。...
总结来说,这款3D打印机以其480mm的正方形外形尺寸和220mm的有效打印行程,提供了良好的打印工作空间。其兼容多种文件格式,操作简便,适合学习和制作各种零件。提供的压缩包资源丰富,对于初学者或有经验的用户都是...
### 六年级奥数行程、走停、变速问题知识点总结 #### 一、知识点概述 在六年级的奥数学习中,“行程、走停、变速问题”是一个重要的知识点,主要涉及的是物体移动过程中速度变化、停止休息等情况下的计算与分析。这...