英语流利说2019秋招技术类笔试题

英语流利说2019秋招技术类笔试题

题型:选择题,问答题,一道编程题。(选择比较有代表意义的)

填空题

  1. 编号为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
    
  2. 以下哪个输出序列不可能是二叉查找树(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不可能
    
  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 显然不可能
    
  4. 快速排序的平均时间复杂度为__ ,最坏情况下的时间复杂度为__。
    在这里插入图片描述 https://www.cnblogs.com/xiaochun126/p/5086037.html

  5. 以下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 由于超载或停机维护,服务器目前无法使用,一段时间后可能恢复正常
    
  6. 数字证书

  7. TCP 连接有多重状态,如何在系统中查看某个连接的状态 ?

       (1) ping :连接是否正常,主要测试抖动,丢包率
       (2) netstat :某个连接的状态
       (3) ifconfig:显示或配置网络的设备
       (4) traceroute:跟踪数据包到达主机所经过的路由工具
    
  8. 在关系数据库中,建立数据库表时,将年龄字段值限制在0~18岁之间的这种约束属于___。

       (1) 域完整性 :字段属性的约束
       (2) 实体完整性 :主键的约束
       (3) 参照完整性 :外键的约束
    
  9. 以下哪种方式不被用来解耦?
    delegate:
    mutex: 不是
    NotificationCenter:
    block:

    以上除了mutex的三种 是ios的通讯模式

  10. 英语流利说APP 懂你英语课程 请求失败

    	1. 原因:网络出错。 解决方案:检查手机网络状况
    	2. 原因:错误的请求。 解决方案:查看前端是否出现意外的bug导致请求出错。
    	3. 原因:服务器忙等。解决方案:使用高并发处理请求。
    	4. 原因:客户权限出现问题。解决方案:检查客户是否已登录,或者具有权限。
    	5. 原因:服务器后台接口出错。解决方案:查看后台接口运行情况。
    	6. 原因:前端处理数据出错。解决方案:查看前端代码逻辑。
    	7. 原因:版本升级导致的接口更换。解决方案:查看版本号和先版本号的差异。
    
  11. 算法 输入一个整形数组(可能有正数和负数),求数组中连续子数组(最少有一个元素)的最大和。要求时间复杂度为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;
    }
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值