英语流利说19秋招笔试总结

1 SQL查询中,只有满足联接条件的记录才包含在查询结果中,这种联接为内连接。

解析:
Inner join:又称为等值连接,只选择满足条件的行
Outer join:外连接会保存没有关联的行
left outer join:保存左边表的所有行,右边没有的行值为NULL
right outer join:保存右边表的所有行,左边没有的行值为NULL
full join:保存所有没有关联的行,当某行在另一个表中没有匹配行时,则另一个表的列为空值
https://jingyan.baidu.com/article/60ccbceb9578f164cab197f4.html

2 编号为1至10个果盘中,每盘都盛有水果,共盛放100个。其中第一盘里有16个,并且编号相邻的三个果盘中水果数的和都相等,求第8盘中水果最多可能有几个?

解析:正确答案:11
由:相邻三个和相等
-> 盘中有相等个数的:1-4 2-5 3-6 4-7 5-8 6-9 7-10
-> 盘中有相等个数的:1-4-7-10 2-5-8 3-6-9
由:第1个盘子有16个
-> 1-4-7-10组有64个
由:总共100个
-> 2-5-8 3-6-9两组的和为36个
由:每个盘子至少1个
-> 3x + 3y = 36,x>0, y>0
-> y = 12 - x, x>0, y>0
-> x < 12
-> x的最大取值为11

3 以下哪个输出序列不可能是二叉查找树(Binary Search Tree)后序遍历的输出。

1, 2, 3, 4, 5
5, 4, 3, 2, 1
1, 3, 2, 4, 5
1, 2, 5, 3, 4
解析;D
对于二叉查找树的后序遍历序列,最后一位是它的根结点,那从左往右数,第一个比这个根结点大的结点就属于根结点的右子树(二叉排序树的一个结点的右子树上的结点都大于它自己,而左子树则都小于它自己)因此在这个结点后面不会存在比根结点小的数字

4 有一次数学比赛,共有A,B和C三道题目。所有人都至少解答出一道题目,总共有25人。在没有答出A的人中,答出B的人数是答出C的人数的两倍;单单答出A的人,比其他答出A的人总数多1;在所有只有答出一道题目的人当中,答出B和C的人数刚好是一半。求只答出B的人数。

解析:所有人至少答出一道题,所以答对的情况有A,B,C,AB,AC,BC,ABC 7种情况
没有答出A的人中,答出B的人数是答出C的人数的两倍,即 B+BC = 2(C+BC);
单单答出A的人,比其他答出A的人总数多1,即 A = 1+AB+AC+ABC;
只答出一道题目的人当中,答出B和C的人数刚好是一半,即 A = B+C;
一共25人,可得 A+B+C+(A-1)+(B-2C) = 25 ==> 4B+C = 26;
B>2*C 所以B=6,C=2,A=8(B=5时C=6不满足条件,B=7时C<0不满足条件),还可得出BC=2,AB+AC+ABC=7

5 如果要删除的字段与建立索引的字段相同,删除效率会提高,如果不同,效率降低

6 TCP 三次握手的过程,accept 发生在三次握手哪个阶段?

解析:第一次握手:客户端发送syn包(syn=j)到服务器。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个ASK包(ask=k)。
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1)。
三次握手完成后,客户端和服务器就建立了tcp连接。这时可以调用accept函数获得此连接

7 以下http状态码中哪一个是永久重定向?

解析:HTTP协议的响应报文由状态行、响应头部和响应包体组成,其响应状态码总体描述如下:
1xx:指示信息–表示请求已接收,继续处理。

2xx:成功–表示请求已被成功接收、理解、接受。

3xx:重定向–要完成请求必须进行更进一步的操作。

4xx:客户端错误–请求有语法错误或请求无法实现。

5xx:服务器端错误–服务器未能实现合法的请求。

常见状态代码、状态描述的详细说明如下。

200 OK:客户端请求成功。

206 partial content服务器已经正确处理部分GET请求,实现断点续传或同时分片下载,该请求必须包含Range请求头来指示客户端期望得到的范围

300 multiple choices(可选重定向):被请求的资源有一系列可供选择的反馈信息,由浏览器/用户自行选择其中一个。

301 moved permanently(永久重定向):该资源已被永久移动到新位置,将来任何对该资源的访问都要使用本响应返回的若干个URI之一。

302 move temporarily(临时重定向):请求的资源现在临时从不同的URI中获得,

304:not modified :如果客户端发送一个待条件的GET请求并且该请求以经被允许,而文档内容未被改变,则返回304,该响应不包含包体(即可直接使用缓存)。

403 Forbidden:服务器收到请求,但是拒绝提供服务。

t Found:请求资源不存在,举个例子:输入了错误的URL。

8 Java 线程中关于 wait 和 sleep 方法相关的描述正确的是?

它们都会让当前线程释放锁。
它们都是 Thread 类里面的方法。
wait 方法用于线程间通信,调用后不会释放锁。
sleep 方法强制线程休眠,但不会释放锁。
解析: Wait 是object 方法释放锁 sleep 是thread 类方法 不释放锁

9 数字证书不包含( )。

颁发机构的名称
证书持有者的私有密钥信息
证书的有效期
CA签发证书时所使用的签名算法
解析:数字证书的格式普遍采用的是X.509V3国际标准,一个标准的X.509数字证书包含以下一些内容:

1、证书的版本信息;

2、证书的序列号,每个证书都有一个唯一的证书序列号;

3、证书所使用的签名算法;

4、证书的发行机构名称,命名规则一般采用X.500格式;

5、证书的有效期,通用的证书一般采用UTC时间格式;

6、证书所有人的名称,命名规则一般采用X.500格式;

7、证书所有人的公开密钥;

8、证书发行者对证书的签名。

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

(1) ping :连接是否正常,主要测试抖动,丢包率
(2) netstat :某个连接的状态
(3) ifconfig:显示或配置网络的设备
(4) traceroute:跟踪数据包到达主机所经过的路由工具

10 以下哪种方式不被用来解耦?

delegate
mutex
NotificationCenter
block
解析: Mutex类就是C++中实现互斥锁的类,互斥锁有可重入和不可重入之分:
mutex是不可重入的互斥锁,recursive_mutex是可重入的互斥锁;
加上上锁时间的限定后,就有了另外两个互斥锁:mutex_timed, recursive_timed_mutex,分别是可重入/不可重入的互斥锁。

11 客户投诉 英语流利说APP 懂你英语课程 请求失败,请分析可能的原因以及解决方案,至少3点。

解析:1. 原因:网络出错。 解决方案:检查手机网络状况
2. 原因:错误的请求。 解决方案:查看前端是否出现意外的bug导致请求出错。
3. 原因:服务器忙等。解决方案:使用高并发处理请求。
4. 原因:客户权限出现问题。解决方案:检查客户是否已登录,或者具有权限。
5. 原因:服务器后台接口出错。解决方案:查看后台接口运行情况。
6. 原因:前端处理数据出错。解决方案:查看前端代码逻辑。
7. 原因:版本升级导致的接口更换。解决方案:查看版本号和先版本号的差异。
8. 原因:服务器无返回数据。解决方案:检查数据库状态。
9. 原因:请求超时。解决方案:查看是否出现请求超时的情况。
10. 原因:服务器掉线。解决方案:重启服务器。
11. 原因:前端逻辑出错。解决方案:查看服务器逻辑。

12 输入一个整形数组(可能有正数和负数),求数组中连续子数组(最少有一个元素)的最大和。要求时间复杂度为O(n)。

解析:`在这里插入代码片链接:https://www.nowcoder.com/questionTerminal/03d341fb6c9d42debcdd38d82a0a545c
来源:牛客网

import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

    int N = sc.nextInt();
    int[] nums = new int[N];
    for (int i = 0; i < N; i++) {
        nums[i] = sc.nextInt();
    }

    int max = nums[0],sum = 0;
    for(int i = 0;i < nums.length;i++){
        sum += nums[i];
        //更新
        if(sum > max)
            max = sum;
        //sum并不是记录最大连续和,只记录大于零的和,只要连续和小于0
        //则重新开始计算和,因为nums[i]加上一个负数肯定比它本身小
        if(sum < 0){
            sum = 0;
        }
    }
    System.out.println(max);
}

}`

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值