京东广告部散招面试

一面

    先问了项目。关注了商秀app问题:

Q:后台是如何将所有模板和实际图片作比对的。

A:是用类似LRUcache的方式。最近访问的放队头。然后逐一比对。

    然后问了Java相关的:

Q:你对多线程并发编程了解多少?

A:核心是通过锁的思想解决并发情况下的问题,乐观锁(其实不是加锁),悲观锁(真正的加锁)。回答了synchronized,violate 这俩关键字。回答了线程的几种状态。wait和sleep的区别。

Q:什么是线程池?

A:描述了使用场景,以及动态扩展,以及释放。

Q:topK问题及其优化。

A:如果数据量大,先Hash分堆。在每堆内部利用小根堆计算topK,再reduce合并。

Q:follow up,K很大,不适合分堆?

A:利用快排的思想,一次减少flag一边的数据。

Q:推算快排法和小根堆法的复杂度各是多少?

A:快排法平均logN,小根堆NlogK。推算。。。

Q:快排的优化?

A:针对顺序,逆序,可以使用类似三选一的方法找flag。针对重复数组,记得是可以先将重复集中,再排。没有回答好。待查。(应该是先将与flag相等的元素聚集)

编程题:堆排序。

出现的问题:计算下标要注意。建堆的时候从len/2开始 i-- 调用adjust。而插入的时候是从0开始调用。adjust函数的退出条件没写好:1,无左子树(,一定无右子树,直接return)2,无右子树(若左子树大于根,return)3,都有且都大于根,return。

二面

Q:Spark中用过xx没有?

A:没有。GG

Q:简历里的学习项目autoComplete是词内还是词间?具体怎么做的,流程是什么。

A:词间。job1:先对line做分割,然后对2gram 3gram 4gram词组统计词频。job2:先计算块儿内统计次数,计算概率。再累计次数和重写计算概率(被嘲笑太简单了)

Q:虚基类和接口的区别与联系。

A:都是为了实现抽象定义。虚基类是通过继承,只能继承一个,必须实现所有非虚函数。而一个类可以继承多个接口。

Q:简述Java的类加载机制?

A:讲了下双亲委派,及其作用。提到了判定类相等的两个条件:类名&&类加载器。

Q:比较对象重写对象equals方法时,还必须重写什么?

A:经提示,如果对象需要放入集合类,那么就要考虑Hash值,所以要重写HashCode。

Q:针对决策树,SVM,K-means三个算法,哪些可以无监督,哪些对尺度变化不敏感,哪些。。

A:K-means无监督,决策树对尺度变化不敏感。

Q:SVM核函数可以拿来做什么?

A:利用多项式展开,解决在当前维度下的线性不可分。

Q:如何对ipv4的地址进行压缩编码。

A:针对ipv4的四个字段,每个字段都是0-255,可以用8bit编码,一共32bit,实际上可以用一个int来存储编码。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值