来自牛客网和我的同学
笔试:5个编程
1,在一个1000万的数组中,给定一个n,找到A[i]+A[j]=n的所有的i,j的组合。写出思路和代码,分析时间复杂度。
2,在一个二叉树中,给定任意两个节点node1和node2,找到他们的最低公共祖先节点,写出思路和代码。
3,在一个袋子里装满了N个球,每个球上都标有一个数字,如果袋子里的球满足其所有数的和大于所有数的积,则成为该袋子为幸福袋子,例如袋子里里有球1、1、2、3。其所有数的和为1+1+2+3=7大于其所有数的积1*1*2*3=6,则此袋子为幸福的袋子。现在允许从袋子里取出m(0<=m
https://www.nowcoder.com/questionTerminal/a5190a7c3ec045ce9273beebdfe029ee
回答1的思路+回答2的代码
4,给定一组IP的映射,每个范围内的IP对应一个城市,写一个算法,对于用户任意给定的IP:userIP,求其IP所在的城市
IP
城市
111.122.1.1-111.123.5.7
北京
111.123.4.7-111.124.111.11
天津
…
…
5,请给出编辑器中redo和undo的代码和思路
1.怎么估计链家北京有多少门店
2. 作者:你好呀,未来
链接:https://www.nowcoder.com/discuss/35193
来源:牛客网
一面 问笔试题相关 redis的常用命令 log4j多个进程如何同时操作一个文件 二面 问项目 说到redis哪些方面用的缓存 缓存和数据库如何同步。我现场想的。说还行就是思路有点混乱 ,后来又说了说xa 二段事务提交 说到spring。问spring springmvc mybatis 的配置流程 项目登陆问题 如何实现项目中的登陆的(一个登陆使用负载均衡多个服务器)怎么实现session共享的 我说了几种方式 每次都被打断 一种。tomcat session 复制到每一台服务器上。问如何实现的。答猜测是序列化后所有服务器共享 第二种 使用spring session。原理 说到是使用 http头存储session信息时 问 报文段是怎么存储的。卒 第三种使用 nginx 粘连。将同一个请求一直映射到一台服务器上。问这台服务器挂了怎么办。卒 activitie工作流解释一下 设计模式 到最后项目也没解释。然后说我的问题问完了。你去候选区等候吧。刚出房间 挂 中途面试官看了短信 估计是在催(五点时面的,还有好多人在等着一二面,估计时间早点就好了)
3. 一面 不问经验 不问框架 就问基础知识
4. 作者:飞翔的忍者龟
链接:https://www.nowcoder.com/discuss/35177?type=0&order=0&pos=44&page=1
来源:牛客网
楼主Android开发岗位,早上到了先做了5道算法题,大致是从数组里找出所有和为n的两个数。二叉树的最低公共祖先点。数组里有多少个子数组满足所有元素之和大于乘积。根据ip找城市,一个城市对应多个ip。用代码实现编辑器的undo和redo。
一面(40min)
先就笔试的5道题讲了下,没做出来的讲了下思路。
1、类加载的过程,每一步具体怎么实现的,问的很细。又讲到android中的dex分包技术以及应用于热更新。
2、jvm和dvm的区别,在jvm中一个程序崩溃有可能导致系统崩溃吗?dvm中呢? ps:这里不是很懂,猜的。。
3、解释网络ip协议、tcp、udp、http、https、socket,以及之间的区别
4、handler机制,并不是让讲简单的流程,要结合源码讲是每一步怎么实现的,以及sendMessage和post(new Runnable)这两种方式的底层实现的区别在哪?
5、同步synchronized的用法,主要问了底层实现,比如线程尝试去获取monitor所有权,有个队列配合工作,具体是怎么工作的?等等。
6、Android中的IPC方式,binder的底层原理(这里讲的比较深入),和管道通信的区别。
7、用过哪些设计模式,具体的应用场景以及为什么选用这种设计模式?
面试官看着很年轻,是个大牛,很厉害。
二面(15min)
一面完快中午了,于是等了一个午饭的时间下午才开始二面,结果二面简直了,15min就结束了!!!
上来问了个两个题
1:求两个单链表的交点?
2:求一个单链表中是否存在环? 数组中根据下标索引查询的复杂度为什么是O(1)?(没想过啊,不太明白意识)
然后就开始了10min的“HR面”,我差点以为对面坐的是hr,一个技术问题没有,聊人生。
至此,秋招第一次面试,卒!
说实话,二面挂的不太服气,两个链表的题答的确实不是太好,但也不用就开始聊人生啊。一面面试官确实厉害,问题问的比较深入,也让我有很多收获,总算没白去。