英语流利说2019秋招技术类笔试题
题型:选择题,问答题,一道编程题。(选择比较有代表意义的)
填空题
-
编号为1至10个果盘中,每盘都盛有水果,共盛放100个。其中第一盘里有16个,并且编号相邻的三个果盘中水
果数的合都相等,求第8盘中水果最多可能有几个?根据题意可得: 1+2+3=2+3+4=3+4+5=4+5+6=5+6+7=6+7+8=7+8+9=8+9+10 可以得出:1=4=7=10,2=5=8,3=6=9,由于1+2+3=4+5+6=7+8+9 可以得出 2+3=5+6=8+9 得出 8+9=(100-4*16)/3=12 最后8最大为11
-
以下哪个输出序列不可能是二叉查找树(Binary Search Tree)后序遍历的输出。
知识点:二叉查找树:相对于根结点左结点小右结点大 关键点:后序遍历的最后一个点时根结点,那从左往右数,第一个比这个根结点大的结点就属于根结点的右子树 A. 1, 2, 3, 4, 5 B.5, 4, 3, 2, 1 C.1, 3, 2, 4, 5 D.1, 2, 5, 3, 4 结论: D. 5比4大说明右子树是5,3,显然3不可能
-
有一次数学比赛,共有A,B和C三道题目。所有人都至少解答出一道题目,总共有25人。在没有答出A的人中,答出B的人数是答出C的人数的两倍;单单答出A的人,比其他答出A的人总数多1;在所有只有答出一道题目的人当中,答出B和C的人数刚好是一半。求只答出B的人数。
根据题意可得: A+B+C+ABC+AB+AC+BC=25 1. B+BC=2*(C+BC) 2. A=ABC+AB+AC+1 3. A=B+C 推导出:B-2C=BC ,4B+C=26, 当B=4,C=10 则 A=14 显然不可能 当B=5,C=6 则 A=11,BC=-7 显然不可能 当B=6,C=2,则A=8,BC=2,ABC+AB+AC=7,6+2+8+2+7=25 显然正确 当B=8,C=-6 显然不可能
-
快速排序的平均时间复杂度为__ ,最坏情况下的时间复杂度为__。
https://www.cnblogs.com/xiaochun126/p/5086037.html
-
以下http状态码中哪一个是永久重定向?
(1) 1XX:通知 a. 100 客户端必须继续发送请求 (2) 2XX: 成功 a. 200 成功请求到资源 b. 201 提示知道新文件的URL c. 202 接受和处理、但处理未完成 d. 204 请求收到,但返回信息为空 (3) 3XX: 重定向 a. 301 本网页永久转移 b. 303 建议客户访问其他url或使用其他访问方式 c. 304 自从上次请求后,请求的网页未修改过,服务器返回此响应时,不会返回网页内容, 代表上次的文档已经被缓存了,还可以继续使用 d. 307 请求资源临时删除 (4) 4XX:客户端错误 a. 400 请求语法错误不被服务器理解 b. 401 错误的证书 c. 404 d. 409 对当前状态资源,请求不能完成 (5) 5XX:服务端错误 a. 500 服务器遇到错误,无法完成请求 b. 503 由于超载或停机维护,服务器目前无法使用,一段时间后可能恢复正常
-
数字证书
-
TCP 连接有多重状态,如何在系统中查看某个连接的状态 ?
(1) ping :连接是否正常,主要测试抖动,丢包率 (2) netstat :某个连接的状态 (3) ifconfig:显示或配置网络的设备 (4) traceroute:跟踪数据包到达主机所经过的路由工具
-
在关系数据库中,建立数据库表时,将年龄字段值限制在0~18岁之间的这种约束属于___。
(1) 域完整性 :字段属性的约束 (2) 实体完整性 :主键的约束 (3) 参照完整性 :外键的约束
-
以下哪种方式不被用来解耦?
delegate:
mutex: 不是
NotificationCenter:
block:以上除了mutex的三种 是ios的通讯模式
-
英语流利说APP 懂你英语课程 请求失败
1. 原因:网络出错。 解决方案:检查手机网络状况 2. 原因:错误的请求。 解决方案:查看前端是否出现意外的bug导致请求出错。 3. 原因:服务器忙等。解决方案:使用高并发处理请求。 4. 原因:客户权限出现问题。解决方案:检查客户是否已登录,或者具有权限。 5. 原因:服务器后台接口出错。解决方案:查看后台接口运行情况。 6. 原因:前端处理数据出错。解决方案:查看前端代码逻辑。 7. 原因:版本升级导致的接口更换。解决方案:查看版本号和先版本号的差异。
-
算法 输入一个整形数组(可能有正数和负数),求数组中连续子数组(最少有一个元素)的最大和。要求时间复杂度为O(n)。
思路:res记录最大的des数,des记录前几个数的和,des[0],des[1],des[2]…依次记录前几个的和的情况,当des[i]为负数的时候,des[i+1]不再连续,从当前开始,记录当前。
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
int nums[]=new int[n];
for(int i=0;i<nums.length;i++){
nums[i]=scan.nextInt();
}
System.out.print(maxSubArray(nums) );
}
public static int maxSubArray(int[] nums) {
int[] des=new int[nums.length];
int res=nums[0];
des[0]=nums[0];
for (int i=1;i<nums.length;i++){
des[i]=nums[i]+(des[i-1]>0?des[i-1]:0);
res=Math.max(res,des[i]);
}
return res;
}
}