今日头条面试总结
头条2017年4月27号面试
一面:
- hashmap 的实现原理,是不是线程安全的?
- 如何解决hashmap线程不安全问题?
- 弱引用和软引用的区别,有没有用到过?
- 如何用一个数组实现一个队列?如果满了怎么办(扩容),扩容怎么实现?
- 如果实现循环队列,怎么操作?怎么样实现扩容?
- java异常介绍
- Android的事件分发机制,down 事件和 move up事件的监听,传递状态
- handler和looper之间的关系,他们怎样通信的,怎么实现事件的分发
- 如何再一个非UI线程中启动一个looper?
- looper.loop()内部实现机制
- 链表插入节点,反转链表
- 快速排序
- http请求头,响应头,状态码
- http和tcp之间的关系
- 三次握手和四次挥手
- get和post区别
- 如何实现断点续传
二面:
- java引用传递和值传递
- 如何实现http请求上传一个图片,实时显示上传百分比,怎样获取这个比例呢?
- 链表的排序
- 一个数组,如果存在一个递增序列,则返回true,其中递增序列位置不一定连续,如[1,-1,3,2,5],则1 3 5 构成一个递增序列,
如果一个都不存在的话返回false,如[1,-2,0,-7] (实现方式见leetcode/16.java,时间复杂度为n2) - 项目相关,怎么修改caffe的layer的,用的是c++的多少版本,如何实现?
- 剩下的就是聊天了
三面:
- 数组插入元素,考虑扩容情况
- 浏览器输入网址后的逻辑
- 操作系统内存管理
- jvm内存管理,垃圾回收机制
- java内部类为什么可以访问外部类的属性成员
- 设计一个联系人快速查询,可按照姓名,手机号,全拼等前缀匹配
算法总结
实现地址
代码地址
- 两个链表求和,(每个链表的节点表示一个数的一位,注意正向和反向的问题)
- 字符串的全排列
- 表达式的括号匹配
- 输入一个数n,找出小于等于n且满足一下规则的最大的数x。
规则:x中的从左到右的每一位都是单调不减的。 - 实现c++的lowerr_bound,就是一个二分法
- 判断一个二叉树是平衡二叉树。
- 给定一个数n,查找树中是否有一个路径之后等于n。
- 设计LRU数据结构,写get方法
- 剑指offer上的第三题,二维数组的那道题
- 给一个数组找出前k大的数
- 两个有序的数组,找到第k大的数
- 分层遍历二叉树
- 给一个矩阵从左上角走到右下角,只能往右或者向下,找出最小的和
- 给一个左开右闭区间,去掉包含3,5,7的数
- 一个完全二叉树,插入一个节点,还是完全二叉树
- topk问题
- 链表的倒数第k个节点
- 最长回文子串
- 一个字符串最少操作改成另一个
- 二叉树和为n的子结构集合
- 一个数组没有重复的数,求子集
- 两个二进制字符串求和
- 快速排序
- 斐波那契
- 树的各种非递归遍历
还没有评论,来说两句吧...