头条面试

Conclusion

面试总共50分钟,问的相当简单,只问了一道算法题,面试时间包括写代码的时间。

Detail

  • 自我介绍
  • 编程:一个数组中找到第K大的数。附加题:不移动原数组元素。附加的这个条件没想出来,面试官就说那直接就写满足基本条件的代码吧。我写的是快排思想的那种解法,第一次实际去写这道题,之前一直知道这道题的解法,但是没有具体去实现过,所以写起来稍微有些慢了。最后在写partition的时候,l,r如何互相赋值耽误了不少时间,最后检查的时候主要在想这点。除此之外,检查用了太多时间,面试官就直接问了我程序中的问题,有一点我是解答了,另一点的确是我写的时候疏忽了,返回值一个是返回元素值,一个是返回元素下标了。经过面试官提醒后,我立马改了。程序最后始终没有去跑测试,面试官问完问题就直接问别的问题了。对了面试官顺便问了我这个算法的复杂度和快排的复杂度,以及快排何时为最坏情况。
  • http和https的区别
    • https在http的基础上试用了ssl协议来加密传输内容
    • 有对称加密,也有非对称加密
    • 可以利用非对称加密去交换对称加密的私钥,然后使用对称加密
    • 客户端首先检测服务端证书是否可信,将服务端的证书发送去授权机构验证
    • 客户端用服务端的证书加密传输的内容,客户端收到后用自己的私钥去解密
    • 非对称加密消耗更多的资源
  • get和post的区别

    • 最直观的区别,get用于请求数据,post用于提交数据(标准来说get不应该修改服务器,而post需要修改服务器)
    • get对于刷新后退无害,post则会重新提交数据
    • get参数受到url长度的限制(http协议没有限制,一般是浏览器或者服务器限制),而post无限制(也可以受限,也是由服务器配置限制)
    • get只能发送ascii码数据,post还可以发送二进制数据
    • 两者都是明文传输,get可以直接在url看到,post可以抓包看到。
    • get请求会存在浏览器历史记录中
    • get是幂等的post不是幂等的(幂等:指同一个请求方法执行多次和仅执行一次的效果完全相同)
  • tcp三次握手,为什么是三次

  • http返回码都知道哪些,都表示什么
    • 1xx消息
    • 2xx成功
    • 3xx重定向
      • 301 moved permanently永久重定向。客户端收到该状态后,对后续的请求应该将请求的地址改为服务器返回的地址
      • 302 moved temporarily 暂时重定向。客户端应当继续向原有地址发送请求
    • 4xx客户端错误
      • 400 bad request
      • 401 unauthorized
      • 403 forbidden
      • 404 not found
      • 405 method not allowed
    • 5xx服务器错误
      • 500 服务器错误
      • 502 bad gateway 从上游服务器收到无效的响应
      • 503 service unavailable
      • 504 gateway timeout 未能及时从上游服务器收到响应
  • 一个十分简单的sql查询
  • 对索引的了解,为什么索引要用B树,B+树
  • 进程线程的区别
  • 一个场景题。地图上会对路况进行标红或者标绿,那么这些数据怎么来的。我回答是采集打开该应用的用户数据,根据时间和位移去计算用户在该段路上的速度。面试官又问假若这段路上没人打开应用,那怎么办。我回答可以用历史数据去预测当前状态。其实后来想想,如果没人在该段路用,那其实挺大概率是该段路就没啥人才对….

然后就结束了。总的来说问的特别简单,但是很遗憾在编程时没好好表现,不知道会不会被挂,唉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值